WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

WP_Taxonomy::set_props() WP 4.7.0

Sets taxonomy properties.

Это метод класса: WP_Taxonomy

Хуки из метода
Возвращает

Null. Ничего.

Использование

$WP_Taxonomy = new WP_Taxonomy();
$var = $WP_Taxonomy->set_props( $object_type, $args );
$object_type(массив/строка) (обязательный)
Name of the object type for the taxonomy object.
$args(массив/строка) (обязательный)
Array or query string of arguments for registering a taxonomy.

Список изменений

С версии 4.7.0 Введена.

Код WP Taxonomy::set props: wp-includes/class-wp-taxonomy.php WP 5.2.3

<?php
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;
}