<?php
#[AllowDynamicProperties]
final class WP_Term {
/**
* Term ID.
*
* @since 4.4.0
* @var int
*/
public $term_id;
/**
* The term's name.
*
* @since 4.4.0
* @var string
*/
public $name = '';
/**
* The term's slug.
*
* @since 4.4.0
* @var string
*/
public $slug = '';
/**
* The term's term_group.
*
* @since 4.4.0
* @var int
*/
public $term_group = '';
/**
* Term Taxonomy ID.
*
* @since 4.4.0
* @var int
*/
public $term_taxonomy_id = 0;
/**
* The term's taxonomy name.
*
* @since 4.4.0
* @var string
*/
public $taxonomy = '';
/**
* The term's description.
*
* @since 4.4.0
* @var string
*/
public $description = '';
/**
* ID of a term's parent term.
*
* @since 4.4.0
* @var int
*/
public $parent = 0;
/**
* Cached object count for this term.
*
* @since 4.4.0
* @var int
*/
public $count = 0;
/**
* Stores the term object's sanitization level.
*
* Does not correspond to a database field.
*
* @since 4.4.0
* @var string
*/
public $filter = 'raw';
/**
* Constructor.
*
* @since 4.4.0
*
* @param WP_Term|object $term Term object.
*/
public function __construct( $term ) {
foreach ( get_object_vars( $term ) as $key => $value ) {
$this->$key = $value;
}
}
/**
* Sanitizes term fields, according to the filter type provided.
*
* @since 4.4.0
*
* @param string $filter Filter context. Accepts 'edit', 'db', 'display', 'attribute', 'js', 'rss', or 'raw'.
*/
public function filter( $filter ) {
sanitize_term( $this, $this->taxonomy, $filter );
}
/**
* Converts an object to array.
*
* @since 4.4.0
*
* @return array Object as array.
*/
public function to_array() {
return get_object_vars( $this );
}
/**
* Getter.
*
* @since 4.4.0
*
* @param string $key Property to get.
* @return mixed Property value.
*/
public function __get( $key ) {
switch ( $key ) {
case 'data':
$data = new stdClass();
$columns = array( 'term_id', 'name', 'slug', 'term_group', 'term_taxonomy_id', 'taxonomy', 'description', 'parent', 'count' );
foreach ( $columns as $column ) {
$data->{$column} = isset( $this->{$column} ) ? $this->{$column} : null;
}
return $data;
// return sanitize_term( $data, $data->taxonomy, 'raw' );
}
}
}
$data = (object) array(
'term_id' => 1,
'name' => 'Uncategorized',
'slug' => 'uncategorized',
'term_group' => 0,
'term_taxonomy_id' => 1,
'taxonomy' => 'category',
'description' => '',
'parent' => 1,
'count' => 1,
);
$term = new WP_Term( $data );
echo '$term->data ...' . "\n\n";
var_dump( $term->data );
echo "\n\n" . '(array) $term->data ...' . "\n\n";
var_dump( (array) $term->data );
echo "\n\n" . '$term->to_array() ...' . "\n\n";
var_dump( $term->to_array() );
- Output for git.master, git.master_jit, rfc.property-hooks
- $term->data ...
object(stdClass)#3 (9) {
["term_id"]=>
int(1)
["name"]=>
string(13) "Uncategorized"
["slug"]=>
string(13) "uncategorized"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(1)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(1)
["count"]=>
int(1)
}
(array) $term->data ...
array(9) {
["term_id"]=>
int(1)
["name"]=>
string(13) "Uncategorized"
["slug"]=>
string(13) "uncategorized"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(1)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(1)
["count"]=>
int(1)
}
$term->to_array() ...
array(10) {
["term_id"]=>
int(1)
["name"]=>
string(13) "Uncategorized"
["slug"]=>
string(13) "uncategorized"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(1)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(1)
["count"]=>
int(1)
["filter"]=>
string(3) "raw"
}
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
61.67 ms | 408 KiB | 5 Q