我遇到了一些问题。我在 WordPress 中创建了一个名为“事件”的自定义帖子。
我有办法添加新事件并查看所有事件和类别。
当我在管理仪表板中查看所有自定义帖子页面时,它们不是按日期排序的。他们到处都是。
下面是我的代码。如何使类别仅成为特定类别。以及在仪表板中查看最新所有自定义帖子的顺序。
//Custom Post Types
add_action('init', 'custom_post');
function custom_post() {
register_post_type('events',
array(
'label' => 'Events',
'singular_label' => 'Events',
'hierarchical' => true,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'events'),
'capability_type' => 'post',
'taxonomies' => array( 'post_tag', 'category'),
'menu_position' => 5,
'menu_icon' => 'dashicons-calendar',
'supports' => array( 'title', 'editor', 'custom-fields', 'excerpt', 'thumbnail', 'page-attributes' ),
)
);
}
谢谢你。
要按日期排序自定义帖子,您需要修改用于在仪表板中显示帖子的查询,并且要仅显示特定类别,您应该修改类别元框以显示它们。 此代码用于按日期排序帖子,将其放入functions.php中:
//Custom Post Types
add_action('init', 'custom_post');
function custom_post() {
register_post_type('events',
array(
'label' => 'Events',
'singular_label' => 'Events',
'hierarchical' => true,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'events'),
'capability_type' => 'post',
'taxonomies' => array( 'post_tag', 'category'),
'menu_position' => 5,
'menu_icon' => 'dashicons-calendar',
'supports' => array( 'title', 'editor', 'custom-fields', 'excerpt', 'thumbnail', 'page-attributes' ),
)
);
}
为了限制自定义帖子类型的类别元框中显示的类别,您可以使用“register_taxonomy_for_object_type”。首先,您需要注册特定于您的“事件”帖子类型的自定义分类法。再次将此代码放入functions.php中:
// Order Events by date in admin dashboard
add_action('pre_get_posts', 'set_events_order_in_admin');
function set_events_order_in_admin($query) {
if (!is_admin()) {
return;
}
global $pagenow;
$post_type = $query->get('post_type');
if ($post_type == 'events' && $pagenow == 'edit.php') {
$query->set('orderby', 'date');
$query->set('order', 'DESC');
}
}
确保您已在 event_category 分类法下创建了类别。您可以在 WordPress 管理员的“事件”自定义帖子类型下管理这些类别。