C:\xampp\htdocs\landing\wp-content\plugins\wordpress-seo\src\integrations\primary-category.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php

namespace Yoast\WP\SEO\Integrations;

use 
stdClass;
use 
WP_Error;
use 
WP_Post;
use 
WPSEO_Primary_Term;
use 
Yoast\WP\SEO\Conditionals\Primary_Category_Conditional;

/**
 * Adds customizations to the front end for the primary category.
 */
class Primary_Category implements Integration_Interface {

    
/**
     * Returns the conditionals based on which this loadable should be active.
     *
     * In this case only when on the frontend, the post overview, post edit or new post admin page.
     *
     * @return array The conditionals.
     */
    
public static function get_conditionals() {
        return [ 
Primary_Category_Conditional::class ];
    }

    
/**
     * Registers a filter to change a post's primary category.
     *
     * @return void
     */
    
public function register_hooks() {
        \
add_filter'post_link_category', [ $this'post_link_category' ], 10);
    }

    
/**
     * Filters post_link_category to change the category to the chosen category by the user.
     *
     * @param stdClass $category   The category that is now used for the post link.
     * @param array    $categories This parameter is not used.
     * @param WP_Post  $post       The post in question.
     *
     * @return array|null|object|WP_Error The category we want to use for the post link.
     */
    
public function post_link_category$category$categories null$post null ) {
        
$post = \get_post$post );
        if ( 
$post === null ) {
            return 
$category;
        }

        
$primary_category $this->get_primary_category$post );
        if ( 
$primary_category !== false && $primary_category !== $category->cat_ID ) {
            
$category = \get_category$primary_category );
        }

        return 
$category;
    }

    
/**
     * Get the id of the primary category.
     *
     * @codeCoverageIgnore It justs wraps a dependency.
     *
     * @param WP_Post $post The post in question.
     *
     * @return int Primary category id.
     */
    
protected function get_primary_category$post ) {
        
$primary_term = new WPSEO_Primary_Term'category'$post->ID );

        return 
$primary_term->get_primary_term();
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586