PATH:
home
/
letacommog
/
laindinois
/
wp-content
/
plugins
/
wordpress-seo-premium.13.4.1
/
src
/
builders
<?php /** * Post Builder for the indexables. * * @package Yoast\YoastSEO\Builders */ namespace Yoast\WP\SEO\Builders; use Yoast\WP\SEO\Models\Indexable; /** * Formats the term meta to indexable format. */ class Indexable_Term_Builder { /** * Formats the data. * * @param int $term_id ID of the term to save data for. * @param \Yoast\WP\SEO\Models\Indexable $indexable The indexable to format. * * @return \Yoast\WP\SEO\Models\Indexable The extended indexable. */ public function build( $term_id, Indexable $indexable ) { $term = \get_term( $term_id ); $taxonomy = $term->taxonomy; $term_meta = \WPSEO_Taxonomy_Meta::get_term_meta( $term_id, $taxonomy ); $indexable->permalink = \get_term_link( $term_id, $taxonomy ); $indexable->object_sub_type = $taxonomy; $indexable->primary_focus_keyword_score = $this->get_keyword_score( $this->get_meta_value( 'wpseo_focuskw', $term_meta ), $this->get_meta_value( 'wpseo_linkdex', $term_meta ) ); $indexable->is_robots_noindex = $this->get_noindex_value( $this->get_meta_value( 'wpseo_noindex', $term_meta ) ); foreach ( $this->get_indexable_lookup() as $meta_key => $indexable_key ) { $indexable->{ $indexable_key } = $this->get_meta_value( $meta_key, $term_meta ); } // Not implemented yet. $indexable->is_cornerstone = false; $indexable->is_robots_nofollow = null; $indexable->is_robots_noarchive = null; $indexable->is_robots_noimageindex = null; $indexable->is_robots_nosnippet = null; return $indexable; } /** * Converts the meta noindex value to the indexable value. * * @param string $meta_value Term meta to base the value on. * * @return bool|null */ protected function get_noindex_value( $meta_value ) { if ( $meta_value === 'noindex' ) { return true; } if ( $meta_value === 'index' ) { return false; } return null; } /** * Determines the focus keyword score. * * @param string $keyword The focus keyword that is set. * @param int $score The score saved on the meta data. * * @return null|int Score to use. */ protected function get_keyword_score( $keyword, $score ) { if ( empty( $keyword ) ) { return null; } return $score; } /** * Retrieves the lookup table. * * @return array Lookup table for the indexable fields. */ protected function get_indexable_lookup() { return [ 'wpseo_canonical' => 'canonical', 'wpseo_focuskw' => 'primary_focus_keyword', 'wpseo_title' => 'title', 'wpseo_desc' => 'description', 'wpseo_content_score' => 'readability_score', 'wpseo_bctitle' => 'breadcrumb_title', 'wpseo_opengraph-title' => 'og_title', 'wpseo_opengraph-description' => 'og_description', 'wpseo_opengraph-image' => 'og_image', 'wpseo_twitter-title' => 'twitter_title', 'wpseo_twitter-description' => 'twitter_description', 'wpseo_twitter-image' => 'twitter_image', ]; } /** * Retrieves a meta value from the given meta data. * * @param string $meta_key The key to extract. * @param array $term_meta The meta data. * * @return null|string The meta value. */ protected function get_meta_value( $meta_key, $term_meta ) { if ( ! \array_key_exists( $meta_key, $term_meta ) ) { return null; } $value = $term_meta[ $meta_key ]; if ( \is_string( $value ) && $value === '' ) { return null; } return $value; } }
[+]
..
[-] indexable-post-builder.php
[edit]
[-] indexable-term-builder.php
[edit]
[-] indexable-author-builder.php
[edit]