函数文档

_wp_nav_menu_meta_box_object()

💡 云策文档标注

概述

_wp_nav_menu_meta_box_object() 是一个 WordPress 内部函数,用于向导航菜单元框中的某些对象类型添加自定义查询参数。它根据传入的对象类型(如页面、文章、分类或自定义文章类型)设置默认的 WP_Query 参数,以控制菜单项的显示方式。

关键要点

  • 函数接受一个可选参数 $data_object,表示文章类型或分类元对象,默认值为 null。
  • 根据 $data_object->name 的值,为不同对象类型设置 _default_query 数组,定义查询参数如排序和文章状态。
  • 返回修改后的对象,用于导航菜单元框的显示逻辑。

代码示例

function _wp_nav_menu_meta_box_object( $data_object = null ) {
    if ( isset( $data_object->name ) ) {
        if ( 'page' === $data_object->name ) {
            $data_object->_default_query = array(
                'orderby'     => 'menu_order title',
                'post_status' => 'publish',
            );
        } elseif ( 'post' === $data_object->name ) {
            $data_object->_default_query = array(
                'post_status' => 'publish',
            );
        } elseif ( 'category' === $data_object->name ) {
            $data_object->_default_query = array(
                'orderby' => 'id',
                'order'   => 'DESC',
            );
        } else {
            $data_object->_default_query = array(
                'post_status' => 'publish',
            );
        }
    }
    return $data_object;
}

📄 原文内容

Adds custom arguments to some of the meta box object types.

Parameters

$data_objectobjectoptional
The post type or taxonomy meta-object.

Default:null

Return

object The post type or taxonomy object.

Source

function _wp_nav_menu_meta_box_object( $data_object = null ) {
	if ( isset( $data_object->name ) ) {

		if ( 'page' === $data_object->name ) {
			$data_object->_default_query = array(
				'orderby'     => 'menu_order title',
				'post_status' => 'publish',
			);

			// Posts should show only published items.
		} elseif ( 'post' === $data_object->name ) {
			$data_object->_default_query = array(
				'post_status' => 'publish',
			);

			// Categories should be in reverse chronological order.
		} elseif ( 'category' === $data_object->name ) {
			$data_object->_default_query = array(
				'orderby' => 'id',
				'order'   => 'DESC',
			);

			// Custom post types should show only published items.
		} else {
			$data_object->_default_query = array(
				'post_status' => 'publish',
			);
		}
	}

	return $data_object;
}

Changelog

Version Description
3.0.0 Introduced.