WP_QUERY返回0结果的自定义字段值

时间:2015-04-26 作者:Guerrilla

我正在尝试进行查询,以获取选中勾选框的所有页面"feature_on_front_page" 它有价值"featured" 带标签"Featured".

我用ACF添加了此复选框。

我的问题是:

        <?php wp_reset_query();  // Restore global post data stomped by the_post(). ?>
        <?php

        // args
        $args = array(
            \'numberposts\'   => -1,
            \'post_type\'     => \'page\',
            \'meta_key\'      => \'feature_on_front_page\',
            \'meta_value\'    => \'featured\'
        );


        // query
        $the_query = new WP_Query( $args );

        ?>
        <?php if( $the_query->have_posts() ): ?>
            <ul>
                <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
                    <li>
                       do some stuff
                    </li>
                <?php endwhile; ?>
            </ul>
        <?php endif; ?>

        <?php wp_reset_query();  // Restore global post data stomped by the_post(). ?>
它返回0个结果。我查了数据库"feature_on_front_page" 键具有数据值"a:1:{i:0;s:8:"featured";}"

我曾尝试使用数组而不是字符串,但我不能确切地知道我做错了什么

我试过:

\'meta_value\'    => array(\'Featured\' => \'featured\')
以及

\'meta_value\'    => array(\'featured\')
以及各种其他变体。我知道这很简单,但我看不出我错在哪里。

以下是它在数据库中的外观:

enter image description here

2 个回复
最合适的回答,由SO网友:sqrbrkt 整理而成

更新:好的,根据ACF的文件,这应该是可行的:

$args = array(
    \'posts_per_page\'   => -1,
    \'post_type\'     => \'page\',
    \'meta_query\'    => array(
        array(
            \'key\'       => \'feature_on_front_page\',
            \'value\'     => \'featured\',
            \'compare\'   => \'LIKE\'
        ),
    )
);
你的代码对我有用。

你能看到feature_on_front_page 在WordPress管理区域中查看页面时的自定义字段?

或者问题在于do some stuff 你省略的部分?

SO网友:Rituparna sonowal

请尝试使用“posts\\u per\\u page”代替“numberposts”。numberposts不是WP\\U查询的有效参数。

如果您使用的是“ACF”,那么我认为这将不适用于WP\\U查询。这是不合逻辑的,但我也有过同样糟糕的经历。尝试一次

结束

相关推荐

Iterate through ID's in loop

我已经基于category创建了一个自定义循环,现在我想运行一个函数,将当前帖子的特定ID作为参数进行迭代。我有。。$secondary_loop = new WP_Query(array( \'category_name\' => get_the_title(), \'posts_per_page\' => 5 )); while ( $secondary_loop->have_posts() ) : $secondary_loop->the_post();&#x