如何获取包含相同元键的所有页面?

时间:2016-12-01 15:57:33

标签: wordpress meta-key

我想抓住所有包含元键'basePrice'的Wordpress页面,无论元值如何。

当我尝试做一个简单的$variable_1 = "a test string"; // output: a test string $variable_2 = "Test string with $variable_1"; // output: Test string with a test string $variable_3 = 'a second test'; // output: a second test $variable_4 = 'Test string with $variable_3'; // output: Test string with $variable_3 时,会返回一个空数组。 根据Wordpress文档,它指出get_pages()需要meta_value才能工作,而不是相反,所以它应该有用吗?

meta_key

如何在我的数组中获取所有具有名为“basePrice”的元键的页面?

1 个答案:

答案 0 :(得分:0)

首先,您应该使用WordPress查询对象进行这类复杂查询。那会给你更多的参数。

所以你可以这样做:

// Let's prepare our query:
$args = array(
   'post_type' => 'page',
   'posts_per_page' => -1,
   'meta_query' => array(
        array(
           'key' => 'basePrice',
           'compare' => 'EXISTS'
        ),
   )
);
$the_query = new WP_Query( $args );

// Array to save our matchs:
$pages = array();

// The Loop
if ( $the_query->have_posts() ) {

    while ( $the_query->have_posts() ) {

         // Let's take what we need, here the whole object but you can pick only what you need:
         $pages[] = $the_query->the_post();

    }

    // Reset our postdata:
    wp_reset_postdata();
}

这应该工作得很好。

使用get_pages()的另一种方法是获取所有网页 - >循环他们 - >创建一个get_post_meta()if语句。如果有值,则将当前页面添加到阵列中。但是你可以想象,你必须加载所有页面,而你不应该这样做。

希望有所帮助,