WP魔术字段query_posts

时间:2013-05-06 13:27:03

标签: wordpress

我正在尝试显示“产品”类型帖子中的标题,其中包含自定义字段“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();
    ?>

3 个答案:

答案 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_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'
                ))    
);

答案 2 :(得分: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_postsHere's why