You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.5 KiB
PHTML
116 lines
2.5 KiB
PHTML
7 months ago
|
<?php
|
||
|
/**
|
||
|
* The Author Class
|
||
|
*
|
||
|
* @since 1.0.22
|
||
|
* @package RankMath
|
||
|
* @subpackage RankMath\Paper
|
||
|
* @author Rank Math <support@rankmath.com>
|
||
|
*/
|
||
|
|
||
|
namespace RankMath\Paper;
|
||
|
|
||
|
use RankMath\User;
|
||
|
use RankMath\Helper;
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
/**
|
||
|
* Author class.
|
||
|
*/
|
||
|
class Author implements IPaper {
|
||
|
|
||
|
/**
|
||
|
* Get the SEO title set in the user metabox.
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function title() {
|
||
|
$title = User::get_meta( 'title', $this->get_user_id() );
|
||
|
if ( '' !== $title ) {
|
||
|
return $title;
|
||
|
}
|
||
|
|
||
|
return Paper::get_from_options( 'author_archive_title' );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the SEO description set in the user metabox.
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function description() {
|
||
|
$description = User::get_meta( 'description', $this->get_user_id() );
|
||
|
if ( '' !== $description ) {
|
||
|
return $description;
|
||
|
}
|
||
|
|
||
|
return Paper::get_from_options( 'author_archive_description' );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the robots meta value set in the user metabox.
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function robots() {
|
||
|
$robots = Paper::robots_combine( User::get_meta( 'robots', $this->get_user_id() ) );
|
||
|
|
||
|
if ( empty( $robots ) && Helper::get_settings( 'titles.author_custom_robots' ) ) {
|
||
|
$robots = Paper::robots_combine( Helper::get_settings( 'titles.author_robots' ), true );
|
||
|
}
|
||
|
|
||
|
return $robots;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the advanced robots meta set in the user metabox.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function advanced_robots() {
|
||
|
$robots = Paper::advanced_robots_combine( User::get_meta( 'advanced_robots', $this->get_user_id() ) );
|
||
|
|
||
|
if ( empty( $robots ) && Helper::get_settings( 'titles.author_custom_robots' ) ) {
|
||
|
$robots = Paper::advanced_robots_combine( Helper::get_settings( 'titles.author_advanced_robots' ), true );
|
||
|
}
|
||
|
|
||
|
return $robots;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the canonical URL.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function canonical() {
|
||
|
return [
|
||
|
'canonical' => get_author_posts_url( $this->get_user_id(), get_query_var( 'author_name' ) ),
|
||
|
'canonical_override' => User::get_meta( 'canonical_url', $this->get_user_id() ),
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the meta keywords for the user (in our case, the Focus Keywords).
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function keywords() {
|
||
|
return User::get_meta( 'focus_keyword', $this->get_user_id() );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the user ID on the author archive or BBPress profile.
|
||
|
*
|
||
|
* @return int
|
||
|
*/
|
||
|
private function get_user_id() {
|
||
|
$author_id = get_query_var( 'author' );
|
||
|
if ( $author_id ) {
|
||
|
return $author_id;
|
||
|
}
|
||
|
|
||
|
return get_query_var( 'bbp_user_id' );
|
||
|
}
|
||
|
}
|