也想出现在这里?联系我们

WordPress 后台文章列表添加自定义分类法筛选

2024.02.27 wordpress教程
  • 文章介绍
  • 升级版本
  • 评价&建议

要在WordPress后台文章列表中添加自定义分类法筛选,您可以按照以下步骤操作:

  1. 注册自定义分类法(Custom Taxonomy):首先,您需要确保已经在主题或插件中注册了您的自定义分类法。您可以使用register_taxonomy()函数来完成这一步骤。确保您在正确的地方调用这个函数,通常是在主题的functions.php文件中。

    例如:

    function custom_taxonomy() {
       $labels = array(
           'name' => '自定义分类法',
           'singular_name' => '自定义分类',
           // 添加其他标签
       );
    
       $args = array(
           'labels' => $labels,
           'public' => true,
           // 添加其他参数
       );
    
       register_taxonomy('custom_taxonomy', 'post', $args);
    }
    
    add_action('init', 'custom_taxonomy');
  2. 编辑文章类型的支持:确保您的自定义分类法已经与文章类型相关联。在上面的示例中,我们将自定义分类法与文章类型“post”相关联。

  3. 添加筛选菜单:接下来,您需要在文章列表页的后台添加筛选菜单。可以通过自定义manage_posts_columnsmanage_posts_custom_column来实现。

    function add_custom_taxonomy_filter() {
       global $typenow;
       if ($typenow == 'post') { // 替换为您要添加筛选的文章类型
           $taxonomy = 'custom_taxonomy'; // 替换为您的自定义分类法名称
           $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '';
           $info_taxonomy = get_taxonomy($taxonomy);
           wp_dropdown_categories(array(
               'show_option_all' => __("显示所有 {$info_taxonomy>label}"),
               'taxonomy' => $taxonomy,
               'name' => $taxonomy,
               'orderby' => 'name',
               'selected' => $selected,
               'show_count' => true,
               'hide_empty' => true,
           ));
       }
    }
    
    add_action('restrict_manage_posts', 'add_custom_taxonomy_filter');
  4. 处理筛选结果:最后,您需要处理筛选的结果并更新文章列表。

    function filter_post_type_by_taxonomy() {
       global $typenow;
       if ($typenow == 'post') { // 替换为您要添加筛选的文章类型
           $taxonomy = 'custom_taxonomy'; // 替换为您的自定义分类法名称
           if (isset($_GET[$taxonomy]) && $_GET[$taxonomy] != '') {
               $query = array(
                   array(
                       'taxonomy' => $taxonomy,
                       'field' => 'id',
                       'terms' => $_GET[$taxonomy],
                       'operator' => 'IN',
                   ),
               );
               set_query_var('tax_query', $query);
           }
       }
    }
    
    add_filter('parse_query', 'filter_post_type_by_taxonomy');

完成这些步骤后,您应该能够在WordPress后台文章列表中看到自定义分类法的筛选菜单,并可以使用它来筛选文章。确保替换示例代码中的自定义分类法名称和文章类型名称以适应您的网站需求。

有用0
  • 2024.02.27初次和大家见面了!

等待您对该主题的建议

发表评论

还能输入240个字

Hi, 欢迎加入Wordpress技术交流群,带你装逼带你飞!

我要入群
也想出现在这里?联系我们
wordpress加速

我来推荐一个更牛逼的给你看看?

  • 猛戳我吧