从 select 下拉列表中的所有 post 中获取所有自定义 post 元值以用作过滤器 - Wordpress
Get all custom post meta values from all posts in select dropdown to use as a filter - Wordpress
在我的 wordpress 博客页面中,我正在尝试为博客创建过滤器。我有一个自定义 post 元键 part_number
,现在我想在 select 下拉列表中为 part_number
创建过滤器,我从所有 post 中获取所有元值像这样:
<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>
但是使用此代码,我的页面从未停止加载,就像加载加载和仍在加载并卡住一样。可能是因为它是博客页面中的第二个查询。我搜索了很多关于从所有 post 获取所有元值的另一种方法,但没有找到任何解决方案。我在这里提出问题。请帮助我完成这项任务。我卡住了
您可以使用 get_posts()
检索所有帖子和他的 meta_data。
<?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>
在我的 wordpress 博客页面中,我正在尝试为博客创建过滤器。我有一个自定义 post 元键 part_number
,现在我想在 select 下拉列表中为 part_number
创建过滤器,我从所有 post 中获取所有元值像这样:
<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>
但是使用此代码,我的页面从未停止加载,就像加载加载和仍在加载并卡住一样。可能是因为它是博客页面中的第二个查询。我搜索了很多关于从所有 post 获取所有元值的另一种方法,但没有找到任何解决方案。我在这里提出问题。请帮助我完成这项任务。我卡住了
您可以使用 get_posts()
检索所有帖子和他的 meta_data。
<?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>