diff options
Diffstat (limited to 'srcs/wordpress/wp-includes/class-wp-taxonomy.php')
| -rw-r--r-- | srcs/wordpress/wp-includes/class-wp-taxonomy.php | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/srcs/wordpress/wp-includes/class-wp-taxonomy.php b/srcs/wordpress/wp-includes/class-wp-taxonomy.php deleted file mode 100644 index 716da8d..0000000 --- a/srcs/wordpress/wp-includes/class-wp-taxonomy.php +++ /dev/null @@ -1,450 +0,0 @@ -<?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 - */ -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; - - /** - * An array of labels for this taxonomy. - * - * @since 4.7.0 - * @var object - */ - public $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 array - */ - public $object_type = null; - - /** - * Capabilities for this taxonomy. - * - * @since 4.7.0 - * @var object - */ - 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 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; - - /** - * Whether it is a built-in taxonomy. - * - * @since 4.7.0 - * @var bool - */ - public $_builtin; - - /** - * Constructor. - * - * @since 4.7.0 - * - * @global WP $wp Current WordPress environment instance. - * - * @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. - * Default empty array. - */ - public function __construct( $taxonomy, $object_type, $args = array() ) { - $this->name = $taxonomy; - - $this->set_props( $object_type, $args ); - } - - /** - * Sets taxonomy properties. - * - * @since 4.7.0 - * - * @param array|string $object_type Name of the object type for the taxonomy object. - * @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. - * @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 ); - - $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_controller_class' => false, - '_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']; - } - - $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; - } - } - - 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' ); - } -} |
