我需要检查每个页面,看看它是否有一个默认模板或另一个模板分配。如果它是默认值,我想执行X,如果不是,那么我将执行Y。我发现的问题是查询没有显示该特定字段。我想找到
[meta_key] => \'_wp_page_template\',
[meta_value] => \'default\'
这就是我测试的目的,但它似乎不起作用。我在这里搜索了一下,找到了这个代码
function get_meta_values( $key = \'\', $type = \'page\', $status = \'publish\' ) {
global $wpdb;
if( empty( $key ) )
return;
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT DISTINCT pm.meta_value FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = \'%s\'
AND p.post_status = \'%s\'
AND p.post_type = \'%s\'
", $key, $status, $type ) );
return $r;
}
因此,在使用WP\\u query的自定义查询中,我这样检查
$args = array(
\'post_type\' => \'page\',
\'posts_per_page\' => -1,
);
$page_query = new WP_Query( $args );
if ( $page_query->have_posts() ) : while ( $page_query->have_posts() ) : $page_query->the_post(); ?>
<?php $template = get_meta_values(\'_wp_page_template\');
if( $template != \'default\'){ ?>
//run X here
}
else {
//run Y here
}
the rest of the loop follows below.
有些页面应该运行X,有些应该运行Y,但它们似乎都在运行X。
你能告诉我我做错了什么吗?当我对$page\\u查询执行var\\u转储时,我在数组中看不到[meta\\u key]字段。这就是为什么我认为get\\u meta\\u values函数可以解决这个问题。