簡體   English   中英

從選擇下拉列表中的所有帖子中獲取所有自定義帖子元值以用作過濾器 - Wordpress

[英]Get all custom post meta values from all posts in select dropdown to use as a filter - Wordpress

在我的 wordpress 博客頁面中,我正在嘗試為博客創建過濾器。 我有一個自定義帖子元鍵part_number ,現在我想在選擇下拉列表中為part_number創建過濾器,我正在從所有帖子中獲取所有元值,如下所示:

<select name="filter_year">
    <option value="">Select part number</option>
    <?php
    
        if ( $query->have_posts() ) {
            while($query->have_posts()) {
                global $post;
                $part_number = get_post_meta($post->ID, 'part_number', true);
                echo '<option value="'.$part_number.'">'.$part_number.'</option>';
            }
        }
    
    ?>
</select>

但是使用此代碼,我的頁面永遠不會停止加載,就像加載加載和仍在加載並卡住一樣..可能是因為它是博客頁面中的第二個查詢。 我已經搜索了很多關於從所有帖子中獲取所有元值的另一種方法,但沒有找到任何解決方案。 我在這里提出問題。 請幫助我完成這項任務。 我被卡住了

您可以使用get_posts()來檢索所有帖子及其元數據。

<?php

$all_posts = get_posts( array(
    'numberposts' => -1
) );

$part_numbers = array();

foreach ( $all_posts as $p ) {
    $part_number = get_post_meta( $p->ID, 'part_number', true );
    $part_numbers[] = $part_number;
}

$part_numbers = array_unique( $part_numbers );

?>

<select name="filter_year">
    <option hidden disabled selected value="">Select part number</option>
    <?php foreach ( $part_numbers as $pn ) {
         echo '<option value="'.$part_number.'">'.$part_number.'</option>';
    } ?>
</select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM