Wordpress 自定义帖子订单和类别

问题描述 投票:0回答:1

我遇到了一些问题。我在 WordPress 中创建了一个名为“事件”的自定义帖子。

我有办法添加新事件并查看所有事件和类别。

当我在管理仪表板中查看所有自定义帖子页面时,它们不是按日期排序的。他们到处都是。

  1. 创建新的自定义帖子页面时,我只想选择特定类别。不是所有类别。

下面是我的代码。如何使类别仅成为特定类别。以及在仪表板中查看最新所有自定义帖子的顺序。


    //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' ),

            )              
        );


    }

谢谢你。

php wordpress posts
1个回答
0
投票

要按日期排序自定义帖子,您需要修改用于在仪表板中显示帖子的查询,并且要仅显示特定类别,您应该修改类别元框以显示它们。 此代码用于按日期排序帖子,将其放入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 管理员的“事件”自定义帖子类型下管理这些类别。

© www.soinside.com 2019 - 2024. All rights reserved.