PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.7
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.7
27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / inc / class-wpseo-primary-term.php
wordpress-seo / inc Last commit date
exceptions 5 years ago options 3 months ago sitemaps 3 months ago class-addon-manager.php 3 months ago class-my-yoast-api-request.php 3 months ago class-post-type.php 1 year ago class-rewrite.php 3 months ago class-upgrade-history.php 3 months ago class-upgrade.php 3 months ago class-wpseo-admin-bar-menu.php 3 weeks ago class-wpseo-content-images.php 3 months ago class-wpseo-custom-fields.php 1 year ago class-wpseo-custom-taxonomies.php 3 months ago class-wpseo-image-utils.php 3 months ago class-wpseo-installation.php 7 months ago class-wpseo-meta.php 3 weeks ago class-wpseo-primary-term.php 2 years ago class-wpseo-rank.php 3 months ago class-wpseo-replace-vars.php 3 months ago class-wpseo-replacement-variable.php 5 years ago class-wpseo-shortlinker.php 2 years ago class-wpseo-statistics.php 5 years ago class-wpseo-utils.php 2 months ago class-yoast-dynamic-rewrites.php 2 years ago date-helper.php 5 years ago index.php 10 years ago interface-wpseo-wordpress-ajax-integration.php 7 years ago interface-wpseo-wordpress-integration.php 7 years ago language-utils.php 2 years ago wpseo-functions-deprecated.php 2 years ago wpseo-functions.php 2 years ago wpseo-non-ajax-functions.php 5 years ago
class-wpseo-primary-term.php
87 lines
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO
6 */
7
8 /**
9 * Represents a post's primary term.
10 */
11 class WPSEO_Primary_Term {
12
13 /**
14 * Taxonomy name for the term.
15 *
16 * @var string
17 */
18 protected $taxonomy_name;
19
20 /**
21 * Post ID for the term.
22 *
23 * @var int
24 */
25 protected $post_ID;
26
27 /**
28 * The taxonomy this term is part of.
29 *
30 * @param string $taxonomy_name Taxonomy name for the term.
31 * @param int $post_id Post ID for the term.
32 */
33 public function __construct( $taxonomy_name, $post_id ) {
34 $this->taxonomy_name = $taxonomy_name;
35 $this->post_ID = $post_id;
36 }
37
38 /**
39 * Returns the primary term ID.
40 *
41 * @return int|bool
42 */
43 public function get_primary_term() {
44 $primary_term = get_post_meta( $this->post_ID, WPSEO_Meta::$meta_prefix . 'primary_' . $this->taxonomy_name, true );
45
46 if ( ! $primary_term ) {
47 return false;
48 }
49
50 $terms = $this->get_terms();
51
52 if ( ! in_array( (int) $primary_term, wp_list_pluck( $terms, 'term_id' ), true ) ) {
53 $primary_term = false;
54 }
55
56 $primary_term = (int) $primary_term;
57 return ( $primary_term ) ? ( $primary_term ) : false;
58 }
59
60 /**
61 * Sets the new primary term ID.
62 *
63 * @param int $new_primary_term New primary term ID.
64 *
65 * @return void
66 */
67 public function set_primary_term( $new_primary_term ) {
68 update_post_meta( $this->post_ID, WPSEO_Meta::$meta_prefix . 'primary_' . $this->taxonomy_name, $new_primary_term );
69 }
70
71 /**
72 * Get the terms for the current post ID.
73 * When $terms is not an array, set $terms to an array.
74 *
75 * @return array
76 */
77 protected function get_terms() {
78 $terms = get_the_terms( $this->post_ID, $this->taxonomy_name );
79
80 if ( ! is_array( $terms ) ) {
81 $terms = [];
82 }
83
84 return $terms;
85 }
86 }
87