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.
126 lines
3.2 KiB
PHTML
126 lines
3.2 KiB
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* Author variable replacer.
|
||
|
*
|
||
|
* @since 1.0.33
|
||
|
* @package RankMath
|
||
|
* @subpackage RankMath\Replace_Variables
|
||
|
* @author Rank Math <support@rankmath.com>
|
||
|
*/
|
||
|
|
||
|
namespace RankMath\Replace_Variables;
|
||
|
|
||
|
use RankMath\Admin\Admin_Helper;
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
/**
|
||
|
* Author_Variables class.
|
||
|
*/
|
||
|
class Author_Variables extends Term_Variables {
|
||
|
|
||
|
/**
|
||
|
* Hold counter variable data.
|
||
|
*
|
||
|
* @var array
|
||
|
*/
|
||
|
protected $counters = [];
|
||
|
|
||
|
/**
|
||
|
* Setup author variables.
|
||
|
*/
|
||
|
public function setup_author_variables() {
|
||
|
global $user_id;
|
||
|
if ( ! Admin_Helper::is_user_edit() ) {
|
||
|
$user_id = get_current_user_id();
|
||
|
}
|
||
|
|
||
|
if ( $this->is_post_edit ) {
|
||
|
$post = $this->get_post();
|
||
|
$author = get_userdata( $post->post_author );
|
||
|
}
|
||
|
|
||
|
$this->register_replacement(
|
||
|
'userid',
|
||
|
[
|
||
|
'name' => esc_html__( 'Author ID', 'rank-math' ),
|
||
|
'description' => esc_html__( 'Author\'s user ID of the current post, page or author archive.', 'rank-math' ),
|
||
|
'variable' => 'userid',
|
||
|
'example' => $this->is_post_edit ? $post->post_author : $user_id,
|
||
|
],
|
||
|
[ $this, 'get_userid' ]
|
||
|
);
|
||
|
|
||
|
$this->register_replacement(
|
||
|
'name',
|
||
|
[
|
||
|
'name' => esc_html__( 'Post Author', 'rank-math' ),
|
||
|
'description' => esc_html__( 'Display author\'s nicename of the current post, page or author archive.', 'rank-math' ),
|
||
|
'variable' => 'name',
|
||
|
'example' => $this->is_post_edit && $author ? $author->display_name : get_the_author_meta( 'display_name', $user_id ),
|
||
|
],
|
||
|
[ $this, 'get_name' ]
|
||
|
);
|
||
|
|
||
|
$this->register_replacement(
|
||
|
'post_author',
|
||
|
[
|
||
|
'name' => esc_html__( 'Post Author', 'rank-math' ),
|
||
|
'description' => esc_html__( 'Display author\'s nicename of the current post, page or author archive.', 'rank-math' ),
|
||
|
'variable' => 'post_author',
|
||
|
'example' => $this->is_post_edit && $author ? $author->display_name : get_the_author_meta( 'display_name', $user_id ),
|
||
|
],
|
||
|
[ $this, 'get_name' ]
|
||
|
);
|
||
|
|
||
|
$this->register_replacement(
|
||
|
'user_description',
|
||
|
[
|
||
|
'name' => esc_html__( 'Author Description', 'rank-math' ),
|
||
|
'description' => esc_html__( 'Author\'s biographical info of the current post, page or author archive.', 'rank-math' ),
|
||
|
'variable' => 'user_description',
|
||
|
'example' => get_the_author_meta( 'description', $user_id ),
|
||
|
],
|
||
|
[ $this, 'get_user_description' ]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the post author's user ID to use as a replacement.
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function get_userid() {
|
||
|
$user_id = ! empty( $this->args->post_author ) ? $this->args->post_author : get_query_var( 'author' );
|
||
|
if ( $user_id ) {
|
||
|
return $user_id;
|
||
|
}
|
||
|
|
||
|
return get_query_var( 'bbp_user_id' );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the post author's "nice name" to use as a replacement.
|
||
|
*
|
||
|
* @return string|null
|
||
|
*/
|
||
|
public function get_name() {
|
||
|
$user_id = $this->get_userid();
|
||
|
$name = get_the_author_meta( 'display_name', $user_id );
|
||
|
|
||
|
return '' !== $name ? $name : null;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the post author's user description to use as a replacement.
|
||
|
*
|
||
|
* @return string|null
|
||
|
*/
|
||
|
public function get_user_description() {
|
||
|
$user_id = $this->get_userid();
|
||
|
$description = get_the_author_meta( 'description', $user_id );
|
||
|
|
||
|
return '' !== $description ? $description : null;
|
||
|
}
|
||
|
}
|