我正在尝试显示“产品”类型帖子中的标题,其中包含自定义字段“product_category”(下拉列表),其值为“food”。
当“food”字段设置为“text”时,一切都很好。当我改变这种类型 字段“下拉”没有出现。
要创建自定义页面和自定义字段,我在Wordpress中使用Magic Fields插件。
以下是代码:
<?php
global $wp_query;
query_posts(array(
'post_type' => 'products',
'meta_query' => array(
array(
'key' => 'product_category',
'value' => 'food',
)
))
);
while(have_posts()) : the_post(); ?>
<?php $key = get_post_meta($post->ID, 'title'); ?>
<li <?php post_class(); ?>><a href="<?php the_permalink(); ?>"><?php if($key) { echo $key[0]; } else { the_title(); }; ?></a></li>
<?php
endwhile;
wp_reset_query();
?>
答案 0 :(得分:1)
使用meta_key和meta_value
<?php
global $wp_query;
query_posts(array(
'post_type' => 'products',
'meta_query' => array(
array(
'meta_key' => 'product_category',
'meta_value' => 'food',
)
))
);
?>
答案 1 :(得分:1)
您需要将参数metacompare添加到数组(meta_compare => 'like')
,因为在表wp_postmeta
上key_value
保存为"a:1:{i:0;s:7:"Food";}"
所以
你应该改为:
query_posts(array(
'post_type' => 'products',
'meta_key' => 'product_category',
'meta_value' => 'food',
'meta_compare' => 'like'
))
);
答案 2 :(得分:0)
请尝试使用meta_query
。确保您同时使用products
和product
作为post_type
参数。
$args = array(
'post_type' => 'product',
'meta_query' => array(
array(
'key' => 'product_category',
'value' => 'food'
)
)
);
$query = new WP_Query( $args );
另外,请勿使用query_posts
。 Here's why