| Server IP : 213.186.33.4 / Your IP : 216.73.216.146 Web Server : Apache System : Linux webm005.cluster103.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64 User : karinebmkh ( 644538) PHP Version : 8.4.22 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/karinebmkh/www2/wp-content/plugins/wordpress-seo/frontend/ |
Upload File : |
<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Frontend
*/
/**
* Adds customizations to the front end for the primary category.
*/
class WPSEO_Frontend_Primary_Category implements WPSEO_WordPress_Integration {
/**
* Registers the hooks necessary for correct primary category behaviour.
*/
public function register_hooks() {
add_filter( 'post_link_category', array( $this, 'post_link_category' ), 10, 3 );
}
/**
* 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 );
$primary_category = $this->get_primary_category( $post );
if ( false !== $primary_category && $primary_category !== $category->cat_ID ) {
$category = $this->get_category( $primary_category );
}
return $category;
}
/**
* Get the id of the primary category.
*
* @param WP_Post $post The post in question.
*
* @return int Primary category id.
*/
protected function get_primary_category( $post = null ) {
$post = get_post( $post );
if ( $post === null ) {
return false;
}
$primary_term = new WPSEO_Primary_Term( 'category', $post->ID );
return $primary_term->get_primary_term();
}
/**
* Wrapper for get category to make mocking easier.
*
* @param int $primary_category ID of primary category.
*
* @return array|null|object|WP_Error
*/
protected function get_category( $primary_category ) {
$category = get_category( $primary_category );
return $category;
}
}