d tag, if any.
*
* @since 6.4.0
*
* @var WP_HTML_Token|null
*/
public $current_token = null;
/**
* Tree construction insertion mode.
*
* @since 6.4.0
*
* @see https://html.spec.whatwg.org/#insertion-mode
*
* @var string
*/
public $insertion_mode = self::INSERTION_MODE_INITIAL;
/**
* Context node initializing fragment parser, if created as a fragment parser.
*
* @since 6.4.0
*
* @see https://html.spec.whatwg.org/#concept-frag-parse-context
*
* @var [string, array]|null
*/
public $context_node = null;
/**
* The recognized encoding of the input byte stream.
*
* > The stream of code points that comprises the input to the tokenization
* > stage will be initially seen by the user agent as a stream of bytes
* > (typically coming over the network or from the local file system).
* > The bytes encode the actual characters according to a particular character
* > encoding, which the user agent uses to decode the bytes into characters.
*
* @since 6.7.0
*
* @var string|null
*/
public $encoding = null;
/**
* The parser's confidence in the input encoding.
*
* > When the HTML parser is decoding an input byte stream, it uses a character
* > encoding and a confidence. The confidence is either tentative, certain, or
* > irrelevant. The encoding used, and whether the confidence in that encoding
* > is tentative or certain, is used during the parsing to determine whether to
* > change the encoding. If no encoding is necessary, e.g. because the parser is
* > operating on a Unicode stream and doesn't have to use a character encoding
* > at all, then the confidence is irrelevant.
*
* @since 6.7.0
*
* @var string
*/
public $encoding_confidence = 'tentative';
/**
* HEAD element pointer.
*
* @since 6.7.0
*
* @see https://html.spec.whatwg.org/multipage/parsing.html#head-element-pointer
*
* @var WP_HTML_Token|null
*/
public $head_element = null;
/**
* FORM element pointer.
*
* > points to the last form element that was opened and whose end tag has
* > not yet been seen. It is used to make form controls associate with
* > forms in the face of dramatically bad markup, for historical reasons.
* > It is ignored inside template elements.
*
* @todo This may be invalidated by a seek operation.
*
* @see https://html.spec.whatwg.org/#form-element-pointer
*
* @since 6.7.0
*
* @var WP_HTML_Token|null
*/
public $form_element = null;
/**
* The frameset-ok flag indicates if a `FRAMESET` element is allowed in the current state.
*
* > The frameset-ok flag is set to "ok" when the parser is created. It is set to "not ok" after certain tokens are seen.
*
* @since 6.4.0
*
* @see https://html.spec.whatwg.org/#frameset-ok-flag
*
* @var bool
*/
public $frameset_ok = true;
/**
* Constructor - creates a new and empty state value.
*
* @since 6.4.0
*
* @see WP_HTML_Processor
*/
public function __construct() {
$this->stack_of_open_elements = new WP_HTML_Open_Elements();
$this->active_formatting_elements = new WP_HTML_Active_Formatting_Elements();
}
}
lseif ( $this->is_term_edit ) {
$term_id = Param::request( 'tag_ID', 0, FILTER_VALIDATE_INT );
$metas = get_metadata( 'term', $term_id );
}
if ( empty( $metas ) ) {
return [];
}
$json = [];
foreach ( $metas as $meta_key => $meta_value ) {
if ( Str::starts_with( '_', $meta_key ) || Str::starts_with( 'rank_math_', $meta_key ) ) {
continue;
}
$json[ $meta_key ] = $meta_value[0];
}
return $json;
}
/**
* Get custom taxonomies.
*
* @return array
*/
private function get_custom_taxonomies() {
$taxonomies = get_post_taxonomies( $this->args->ID );
if ( empty( $taxonomies ) ) {
return [];
}
$json = [];
foreach ( $taxonomies as $taxonomy ) {
if ( in_array( $taxonomy, [ 'category', 'post_tag' ], true ) ) {
continue;
}
$name = ucwords( str_replace( [ '_', '-' ], ' ', $taxonomy ) );
/* translators: Taxonomy name. */
$title = sprintf( __( '%s Title', 'rank-math' ), $name );
/* translators: Taxonomy name. */
$desc = sprintf( __( '%s Description', 'rank-math' ), $name );
$this->register_replacement(
"term_{$taxonomy}",
[
'name' => $title,
'description' => esc_html__( 'Custom Term title.', 'rank-math' ),
'variable' => "customterm({$taxonomy})",
'example' => $title,
],
[ $this, 'get_custom_term' ]
);
$this->register_replacement(
"term_{$taxonomy}_desc",
[
'name' => $desc,
'description' => esc_html__( 'Custom Term description.', 'rank-math' ),
'variable' => "customterm_desc({$taxonomy})",
'example' => $desc,
],
[ $this, 'get_custom_term_desc' ]
);
$term = $this->get_custom_term( $taxonomy );
$term_desc = $this->get_custom_term_desc( $taxonomy );
$json[ $taxonomy ] = $term ? $term : $title;
$json[ "{$taxonomy}_desc" ] = $term_desc ? $term_desc : $desc;
}
return $json;
}
}