我想抓住所有包含元键'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”的元键的页面?
答案 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语句。如果有值,则将当前页面添加到阵列中。但是你可以想象,你必须加载所有页面,而你不应该这样做。
希望有所帮助,