0

我正在尝试显示类型为“产品”的帖子的标题,这些帖子有一个自定义字段“product_category”(下拉菜单),值为“food”。

当“食物”字段设置为“文本”时,一切都很好。当我将此字段的类型更改为“下拉”时,什么也没有出现。

要创建自定义页面和自定义字段,我使用 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();
    ?>
4

3 回答 3

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',
                    )
                ))    
);
?>
于 2013-05-07T09:39:17.890 回答
1

您需要将参数 metacompare 添加到数组中(meta_compare => 'like'),因为在表wp_postmetakey_value保存为"a:1:{i:0;s:7:"Food";}"

所以

你应该改为:

query_posts(array(
        'post_type' => 'products',
        'meta_key'    => 'product_category',
        'meta_value'  => 'food',
        'meta_compare' => 'like'
                ))    
);
于 2015-01-09T07:41:51.373 回答
0

尝试meta_query改用。确保你同时尝试productsproduct作为你的post_type参数。

$args = array(
    'post_type' => 'product',
    'meta_query' => array(
        array(
            'key' => 'product_category',
            'value' => 'food'
        )
    )
);
$query = new WP_Query( $args );

另外,不要使用query_posts. 这就是为什么

于 2013-05-08T13:56:44.547 回答