| Current Path : /home/x/b/o/xbodynamge/namtation/wp-content/ |
| Current File : /home/x/b/o/xbodynamge/namtation/wp-content/Article.php.tar |
xbodynamge/dev/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/Article/Article.php 0000644 00000011770 15114310357 0027663 0 ustar 00 home <?php
namespace AIOSEO\Plugin\Common\Schema\Graphs\Article;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Common\Schema\Graphs;
/**
* Article graph class.
*
* @since 4.0.0
*/
class Article extends Graphs\Graph {
/**
* Returns the graph data.
*
* @since 4.2.5
*
* @param Object $graphData The graph data.
* @return array The parsed graph data.
*/
public function get( $graphData = null ) {
$post = aioseo()->helpers->getPost();
if ( ! is_a( $post, 'WP_Post' ) ) {
return [];
}
$data = [
'@type' => 'Article',
'@id' => ! empty( $graphData->id ) ? aioseo()->schema->context['url'] . $graphData->id : aioseo()->schema->context['url'] . '#article',
'name' => ! empty( $graphData->properties->name ) ? $graphData->properties->name : aioseo()->schema->context['name'],
'headline' => ! empty( $graphData->properties->headline ) ? $graphData->properties->headline : get_the_title(),
'description' => ! empty( $graphData->properties->description ) ? $graphData->properties->description : '',
'author' => [
'@type' => 'Person',
'name' => ! empty( $graphData->properties->author->name ) ? $graphData->properties->author->name : get_the_author_meta( 'display_name' ),
'url' => ! empty( $graphData->properties->author->url ) ? $graphData->properties->author->url : '',
],
'publisher' => [ '@id' => trailingslashit( home_url() ) . '#' . aioseo()->options->searchAppearance->global->schema->siteRepresents ],
'image' => ! empty( $graphData->properties->image ) ? $this->image( $graphData->properties->image ) : $this->postImage( $post ),
'datePublished' => ! empty( $graphData->properties->dates->datePublished )
? mysql2date( DATE_W3C, $graphData->properties->dates->datePublished, false )
: mysql2date( DATE_W3C, $post->post_date, false ),
'dateModified' => ! empty( $graphData->properties->dates->dateModified )
? mysql2date( DATE_W3C, $graphData->properties->dates->dateModified, false )
: mysql2date( DATE_W3C, $post->post_modified, false ),
'inLanguage' => aioseo()->helpers->currentLanguageCodeBCP47(),
'commentCount' => get_comment_count( $post->ID )['approved'],
'mainEntityOfPage' => empty( $graphData ) ? [ '@id' => aioseo()->schema->context['url'] . '#webpage' ] : '',
'isPartOf' => empty( $graphData ) ? [ '@id' => aioseo()->schema->context['url'] . '#webpage' ] : ''
];
if ( empty( $graphData->properties->author->name ) ) {
if ( ! in_array( 'PersonAuthor', aioseo()->schema->graphs, true ) ) {
aioseo()->schema->graphs[] = 'PersonAuthor';
}
$data['author'] = [
'@id' => get_author_posts_url( $post->post_author ) . '#author'
];
}
if ( ! empty( $graphData->properties->keywords ) ) {
$keywords = json_decode( $graphData->properties->keywords, true );
$keywords = array_map( function ( $keywordObject ) {
return $keywordObject['value'];
}, $keywords );
$data['keywords'] = implode( ', ', $keywords );
}
if ( isset( $graphData->properties->dates->include ) && ! $graphData->properties->dates->include ) {
unset( $data['datePublished'] );
unset( $data['dateModified'] );
}
$postTaxonomies = get_post_taxonomies( $post );
$postTerms = [];
foreach ( $postTaxonomies as $taxonomy ) {
$terms = get_the_terms( $post, $taxonomy );
if ( $terms ) {
$postTerms = array_merge( $postTerms, wp_list_pluck( $terms, 'name' ) );
}
}
if ( ! empty( $postTerms ) ) {
$data['articleSection'] = implode( ', ', $postTerms );
}
$pageNumber = aioseo()->helpers->getPageNumber();
if ( 1 < $pageNumber ) {
$data['pagination'] = $pageNumber;
}
return $data;
}
/**
* Returns the graph data for the post image.
*
* @since 4.0.0
*
* @param \WP_Post $post The post object.
* @return array The image graph data.
*/
private function postImage( $post ) {
$featuredImage = $this->getFeaturedImage();
if ( $featuredImage ) {
return $featuredImage;
}
preg_match_all( '#<img[^>]+src="([^">]+)"#', (string) $post->post_content, $matches );
if ( isset( $matches[1] ) && isset( $matches[1][0] ) ) {
$url = aioseo()->helpers->removeImageDimensions( $matches[1][0] );
$imageId = aioseo()->helpers->attachmentUrlToPostId( $url );
if ( $imageId ) {
return $this->image( $imageId, 'articleImage' );
} else {
return $this->image( $url, 'articleImage' );
}
}
if ( 'organization' === aioseo()->options->searchAppearance->global->schema->siteRepresents ) {
$logo = ( new Graphs\KnowledgeGraph\KgOrganization() )->logo();
if ( ! empty( $logo ) ) {
$logo['@id'] = trailingslashit( home_url() ) . '#articleImage';
return $logo;
}
} else {
$avatar = $this->avatar( $post->post_author, 'articleImage' );
if ( $avatar ) {
return $avatar;
}
}
$imageId = aioseo()->helpers->getSiteLogoId();
if ( $imageId ) {
return $this->image( $imageId, 'articleImage' );
}
return [];
}
} namtation/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/Article/Article.php 0000644 00000011770 15114450102 0031070 0 ustar 00 home/xbodynamge <?php
namespace AIOSEO\Plugin\Common\Schema\Graphs\Article;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Common\Schema\Graphs;
/**
* Article graph class.
*
* @since 4.0.0
*/
class Article extends Graphs\Graph {
/**
* Returns the graph data.
*
* @since 4.2.5
*
* @param Object $graphData The graph data.
* @return array The parsed graph data.
*/
public function get( $graphData = null ) {
$post = aioseo()->helpers->getPost();
if ( ! is_a( $post, 'WP_Post' ) ) {
return [];
}
$data = [
'@type' => 'Article',
'@id' => ! empty( $graphData->id ) ? aioseo()->schema->context['url'] . $graphData->id : aioseo()->schema->context['url'] . '#article',
'name' => ! empty( $graphData->properties->name ) ? $graphData->properties->name : aioseo()->schema->context['name'],
'headline' => ! empty( $graphData->properties->headline ) ? $graphData->properties->headline : get_the_title(),
'description' => ! empty( $graphData->properties->description ) ? $graphData->properties->description : '',
'author' => [
'@type' => 'Person',
'name' => ! empty( $graphData->properties->author->name ) ? $graphData->properties->author->name : get_the_author_meta( 'display_name' ),
'url' => ! empty( $graphData->properties->author->url ) ? $graphData->properties->author->url : '',
],
'publisher' => [ '@id' => trailingslashit( home_url() ) . '#' . aioseo()->options->searchAppearance->global->schema->siteRepresents ],
'image' => ! empty( $graphData->properties->image ) ? $this->image( $graphData->properties->image ) : $this->postImage( $post ),
'datePublished' => ! empty( $graphData->properties->dates->datePublished )
? mysql2date( DATE_W3C, $graphData->properties->dates->datePublished, false )
: mysql2date( DATE_W3C, $post->post_date, false ),
'dateModified' => ! empty( $graphData->properties->dates->dateModified )
? mysql2date( DATE_W3C, $graphData->properties->dates->dateModified, false )
: mysql2date( DATE_W3C, $post->post_modified, false ),
'inLanguage' => aioseo()->helpers->currentLanguageCodeBCP47(),
'commentCount' => get_comment_count( $post->ID )['approved'],
'mainEntityOfPage' => empty( $graphData ) ? [ '@id' => aioseo()->schema->context['url'] . '#webpage' ] : '',
'isPartOf' => empty( $graphData ) ? [ '@id' => aioseo()->schema->context['url'] . '#webpage' ] : ''
];
if ( empty( $graphData->properties->author->name ) ) {
if ( ! in_array( 'PersonAuthor', aioseo()->schema->graphs, true ) ) {
aioseo()->schema->graphs[] = 'PersonAuthor';
}
$data['author'] = [
'@id' => get_author_posts_url( $post->post_author ) . '#author'
];
}
if ( ! empty( $graphData->properties->keywords ) ) {
$keywords = json_decode( $graphData->properties->keywords, true );
$keywords = array_map( function ( $keywordObject ) {
return $keywordObject['value'];
}, $keywords );
$data['keywords'] = implode( ', ', $keywords );
}
if ( isset( $graphData->properties->dates->include ) && ! $graphData->properties->dates->include ) {
unset( $data['datePublished'] );
unset( $data['dateModified'] );
}
$postTaxonomies = get_post_taxonomies( $post );
$postTerms = [];
foreach ( $postTaxonomies as $taxonomy ) {
$terms = get_the_terms( $post, $taxonomy );
if ( $terms ) {
$postTerms = array_merge( $postTerms, wp_list_pluck( $terms, 'name' ) );
}
}
if ( ! empty( $postTerms ) ) {
$data['articleSection'] = implode( ', ', $postTerms );
}
$pageNumber = aioseo()->helpers->getPageNumber();
if ( 1 < $pageNumber ) {
$data['pagination'] = $pageNumber;
}
return $data;
}
/**
* Returns the graph data for the post image.
*
* @since 4.0.0
*
* @param \WP_Post $post The post object.
* @return array The image graph data.
*/
private function postImage( $post ) {
$featuredImage = $this->getFeaturedImage();
if ( $featuredImage ) {
return $featuredImage;
}
preg_match_all( '#<img[^>]+src="([^">]+)"#', (string) $post->post_content, $matches );
if ( isset( $matches[1] ) && isset( $matches[1][0] ) ) {
$url = aioseo()->helpers->removeImageDimensions( $matches[1][0] );
$imageId = aioseo()->helpers->attachmentUrlToPostId( $url );
if ( $imageId ) {
return $this->image( $imageId, 'articleImage' );
} else {
return $this->image( $url, 'articleImage' );
}
}
if ( 'organization' === aioseo()->options->searchAppearance->global->schema->siteRepresents ) {
$logo = ( new Graphs\KnowledgeGraph\KgOrganization() )->logo();
if ( ! empty( $logo ) ) {
$logo['@id'] = trailingslashit( home_url() ) . '#articleImage';
return $logo;
}
} else {
$avatar = $this->avatar( $post->post_author, 'articleImage' );
if ( $avatar ) {
return $avatar;
}
}
$imageId = aioseo()->helpers->getSiteLogoId();
if ( $imageId ) {
return $this->image( $imageId, 'articleImage' );
}
return [];
}
}