Maison  >  Article  >  Tutoriel CMS  >  Comment filtrer les articles de taxonomie dans WordPress ?

Comment filtrer les articles de taxonomie dans WordPress ?

阿诚
阿诚original
2022-07-23 14:19:452392parcourir

La colonne tutorielle WordPress suivante vous présentera comment WordPress filtre les articles d'arrière-plan. J'espère qu'elle sera utile aux amis qui en ont besoin !

En plus de sa propre classification d'articles, wordpress prend également en charge les classifications personnalisées, ce qui signifie que vous pouvez enregistrer des classifications d'articles personnalisées en fonction de vos propres besoins.

Comment enregistrer votre propre taxonomie personnalisée ?

Ouvrez d'abord le fichier de fonction principale de WordPress, fonctions.php et insérez le code suivant à la position appropriée

function my_custom_post_courses() {
  $labels = array(
    'name'               => _x( 'courses', 'post type 名称' ),
    'singular_name'      => _x( 'my_courses', 'post type 单个 item 时的名称'),
    'add_new'            => _x( '增加课程', '添加新内容的链接名称' ),
    'add_new_item'       => __( '增加一个课程' ),
    'edit_item'          => __( '编辑课程' ),
    'new_item'           => __( '新课程' ),
    'all_items'          => __( '所有课程' ),
    'view_item'          => __( '查看课程' ),
    'search_items'       => __( '搜索课程' ),
    'not_found'          => __( '没有找到有关课程' ),
    'not_found_in_trash' => __( '回收站里面没有相关课程' ),
    'parent_item_colon'  => '',
    'menu_name'          => '课程'
  );
  $args = array(
    'labels'        => $labels,
    'description'   => '我们网站的课程信息',
    'public'        => true,
    'menu_position' => 5,
    'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
    'has_archive'   => true
  );
    register_post_type( 'my_courses', $args );
  }
  add_action( 'init', 'my_custom_post_courses' );

De cette façon, nous avons enregistré une taxonomie personnalisée nommée 'Cours ' Après avoir défini la taxonomie, l'étape suivante consiste à configurer les articles filtrés.

Si vous avez beaucoup d'articles ou de produits, il nous est nécessaire d'ajouter une fonction de filtrage à la page de liste d'articles du backend WordPress, comme indiqué ci-dessous :

Comment filtrer les articles de taxonomie dans WordPress ?

Pour mettre en œuvre la fonction de filtrage, deux étapes sont nécessaires

La première étape est la même Ajoutez des fonctions d'arrière-plan au fichier function.php pour que la page de liste affiche cette sélection de catégorie

add_action('restrict_manage_posts', 'mycat_add_select_int');
function mycat_add_select_int(){
       global $typenow;
       global $wp_query;
       if ($typenow == 'course') {
              return wp_dropdown_categories(array(
                     'show_option_all' => '课程分类',
                     'taxonomy' => 'course_list',
                     'name' => 'course_list',
                     'orderby' => 'name',
                     'selected' => @$wp_query->query['course_list'],
                     'hierarchical' => true,
                     'depth' => 5,
                     'show_count' => true,
                     'hide_empty' => false,
              ));
       }
}

La deuxième étape consiste à implémenter la fonction de filtrage

add_filter('parse_query', 'mycats_add_query_init');
function mycats_add_query_init($query){
       $qv = &$query->query_vars;
       if (($qv['course_list']) && is_numeric($qv['course_list'])) {
              $term = get_term_by('id', $qv['course_list'],'course_list');
              $qv['course_list'] = $term->slug;
       }
}

Vous pouvez facilement implémenter la fonction de filtrage des articles en arrière-plan avec juste les deux étapes ci-dessus Pour les webmasters de blogs Ou c'est très pratique pour les webmasters qui ont de nombreux articles backend sur leur site Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn