溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

wordpress怎么對分類法文章進行篩選

發布時間:2022-07-28 11:22:58 來源:億速云 閱讀:174 作者:iii 欄目:建站服務器

WordPress怎么對分類法文章進行篩選

在WordPress中,分類法(Taxonomy)是一種用于對內容進行分類和組織的機制。默認情況下,WordPress提供了兩種分類法:分類目錄(Categories)標簽(Tags)。除此之外,開發者還可以創建自定義分類法,以便更好地組織內容。

在實際應用中,我們經常需要根據分類法對文章進行篩選和展示。本文將詳細介紹如何在WordPress中對分類法文章進行篩選,包括使用默認分類法、自定義分類法以及通過代碼實現高級篩選功能。

1. 使用默認分類法進行篩選

1.1 使用分類目錄(Categories)篩選文章

分類目錄是WordPress中最常用的分類法之一。默認情況下,WordPress會為每篇文章分配一個或多個分類目錄。我們可以通過以下方式對文章進行篩選:

1.1.1 在后臺篩選文章

  1. 登錄WordPress后臺,進入“文章”頁面。
  2. 在文章列表的頂部,你會看到一個“分類目錄”下拉菜單。
  3. 選擇你想要篩選的分類目錄,然后點擊“篩選”按鈕。
  4. 系統將只顯示屬于該分類目錄的文章。

1.1.2 在前端篩選文章

如果你想在前端頁面中根據分類目錄篩選文章,可以使用以下方法:

  1. 使用分類目錄歸檔頁面:WordPress會自動為每個分類目錄生成一個歸檔頁面,URL格式為/category/category-slug/。你可以通過訪問這些URL來查看特定分類目錄下的文章。

  2. 使用分類目錄小工具:在WordPress后臺,進入“外觀” -> “小工具”,將“分類目錄”小工具添加到側邊欄或頁腳。用戶可以通過點擊分類目錄鏈接來篩選文章。

  3. 使用自定義查詢:如果你想在前端頁面中自定義篩選邏輯,可以使用WP_Query類來查詢特定分類目錄下的文章。例如:

   $args = array(
       'category_name' => 'news', // 分類目錄的別名
       'posts_per_page' => 5, // 每頁顯示的文章數量
   );
   $query = new WP_Query($args);

   if ($query->have_posts()) {
       while ($query->have_posts()) {
           $query->the_post();
           // 輸出文章內容
           the_title();
           the_content();
       }
   } else {
       echo '沒有找到相關文章。';
   }
   wp_reset_postdata();

1.2 使用標簽(Tags)篩選文章

標簽是另一種常用的分類法,通常用于描述文章的特定主題或關鍵詞。與分類目錄類似,我們可以通過以下方式對文章進行篩選:

1.2.1 在后臺篩選文章

  1. 登錄WordPress后臺,進入“文章”頁面。
  2. 在文章列表的頂部,你會看到一個“標簽”下拉菜單。
  3. 選擇你想要篩選的標簽,然后點擊“篩選”按鈕。
  4. 系統將只顯示帶有該標簽的文章。

1.2.2 在前端篩選文章

  1. 使用標簽歸檔頁面:WordPress會自動為每個標簽生成一個歸檔頁面,URL格式為/tag/tag-slug/。你可以通過訪問這些URL來查看帶有特定標簽的文章。

  2. 使用標簽小工具:在WordPress后臺,進入“外觀” -> “小工具”,將“標簽云”小工具添加到側邊欄或頁腳。用戶可以通過點擊標簽鏈接來篩選文章。

  3. 使用自定義查詢:你可以使用WP_Query類來查詢帶有特定標簽的文章。例如:

   $args = array(
       'tag' => 'wordpress', // 標簽的別名
       'posts_per_page' => 5, // 每頁顯示的文章數量
   );
   $query = new WP_Query($args);

   if ($query->have_posts()) {
       while ($query->have_posts()) {
           $query->the_post();
           // 輸出文章內容
           the_title();
           the_content();
       }
   } else {
       echo '沒有找到相關文章。';
   }
   wp_reset_postdata();

2. 使用自定義分類法進行篩選

除了默認的分類目錄和標簽,WordPress還允許開發者創建自定義分類法。自定義分類法可以用于更復雜的分類需求,例如產品分類、項目分類等。

2.1 創建自定義分類法

要創建自定義分類法,可以在主題的functions.php文件中添加以下代碼:

function create_custom_taxonomy() {
    $labels = array(
        'name' => '項目分類',
        'singular_name' => '項目分類',
        'search_items' => '搜索項目分類',
        'all_items' => '所有項目分類',
        'parent_item' => '父級項目分類',
        'parent_item_colon' => '父級項目分類:',
        'edit_item' => '編輯項目分類',
        'update_item' => '更新項目分類',
        'add_new_item' => '添加新項目分類',
        'new_item_name' => '新項目分類名稱',
        'menu_name' => '項目分類',
    );

    $args = array(
        'hierarchical' => true, // 是否具有層級結構
        'labels' => $labels,
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        'rewrite' => array('slug' => 'project-category'),
    );

    register_taxonomy('project_category', array('post'), $args);
}
add_action('init', 'create_custom_taxonomy', 0);

上述代碼創建了一個名為“項目分類”的自定義分類法,并將其關聯到“文章”類型。

2.2 使用自定義分類法篩選文章

創建自定義分類法后,你可以通過以下方式對文章進行篩選:

2.2.1 在后臺篩選文章

  1. 登錄WordPress后臺,進入“文章”頁面。
  2. 在文章列表的頂部,你會看到一個“項目分類”下拉菜單。
  3. 選擇你想要篩選的項目分類,然后點擊“篩選”按鈕。
  4. 系統將只顯示屬于該項目分類的文章。

2.2.2 在前端篩選文章

  1. 使用自定義分類法歸檔頁面:WordPress會自動為每個自定義分類法生成一個歸檔頁面,URL格式為/project-category/category-slug/。你可以通過訪問這些URL來查看特定分類下的文章。

  2. 使用自定義查詢:你可以使用WP_Query類來查詢特定自定義分類法下的文章。例如:

   $args = array(
       'post_type' => 'post', // 文章類型
       'tax_query' => array(
           array(
               'taxonomy' => 'project_category', // 自定義分類法名稱
               'field' => 'slug', // 使用分類別名進行查詢
               'terms' => 'web-development', // 分類別名
           ),
       ),
       'posts_per_page' => 5, // 每頁顯示的文章數量
   );
   $query = new WP_Query($args);

   if ($query->have_posts()) {
       while ($query->have_posts()) {
           $query->the_post();
           // 輸出文章內容
           the_title();
           the_content();
       }
   } else {
       echo '沒有找到相關文章。';
   }
   wp_reset_postdata();

3. 高級篩選功能

除了基本的分類法篩選,你還可以通過自定義代碼實現更復雜的篩選功能。例如,你可以創建一個多條件篩選器,允許用戶根據多個分類法、標簽、日期等條件篩選文章。

3.1 創建多條件篩選表單

首先,你可以在前端頁面中創建一個篩選表單,允許用戶選擇多個條件進行篩選。例如:

<form action="<?php echo esc_url(home_url('/')); ?>" method="get">
    <label for="category">分類目錄:</label>
    <select name="category" id="category">
        <option value="">所有分類</option>
        <?php
        $categories = get_categories();
        foreach ($categories as $category) {
            echo '<option value="' . $category->slug . '">' . $category->name . '</option>';
        }
        ?>
    </select>

    <label for="tag">標簽:</label>
    <select name="tag" id="tag">
        <option value="">所有標簽</option>
        <?php
        $tags = get_tags();
        foreach ($tags as $tag) {
            echo '<option value="' . $tag->slug . '">' . $tag->name . '</option>';
        }
        ?>
    </select>

    <label for="date">發布日期:</label>
    <input type="date" name="date" id="date">

    <input type="submit" value="篩選">
</form>

3.2 處理篩選請求并顯示結果

接下來,你需要在主題的functions.php文件中添加代碼,處理篩選請求并顯示篩選結果。例如:

function custom_filter_posts($query) {
    if (!is_admin() && $query->is_main_query()) {
        if (isset($_GET['category']) && !empty($_GET['category'])) {
            $query->set('category_name', sanitize_text_field($_GET['category']));
        }
        if (isset($_GET['tag']) && !empty($_GET['tag'])) {
            $query->set('tag', sanitize_text_field($_GET['tag']));
        }
        if (isset($_GET['date']) && !empty($_GET['date'])) {
            $query->set('date_query', array(
                array(
                    'year' => date('Y', strtotime($_GET['date'])),
                    'month' => date('m', strtotime($_GET['date'])),
                    'day' => date('d', strtotime($_GET['date'])),
                ),
            ));
        }
    }
}
add_action('pre_get_posts', 'custom_filter_posts');

上述代碼會根據用戶選擇的分類目錄、標簽和發布日期,動態修改主查詢,從而顯示符合條件的文章。

4. 總結

在WordPress中,分類法是一個非常強大的工具,可以幫助我們更好地組織和管理內容。通過使用默認的分類目錄和標簽,或者創建自定義分類法,我們可以輕松地對文章進行篩選和展示。此外,通過自定義代碼,我們還可以實現更復雜的篩選功能,滿足不同的需求。

希望本文能夠幫助你更好地理解如何在WordPress中對分類法文章進行篩選。如果你有任何問題或建議,歡迎在評論區留言討論。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女