我有一个多站点,可以从一个特定的博客中查询特定的自定义帖子类型。看起来是这样的:
function unify_results_filter( $input ) {
global $wpdb;
$blog_id = get_current_blog_id();
$blog_source_id = \'2\';
$db_source_prefix = str_replace($blog_id, $blog_source_id, $wpdb->prefix);
// if blog is not 2 and post_type is results, query blog id 2
if ( strpos($input, "post_type = \'results\'") !== false )
$input = str_replace( $wpdb->posts, $db_source_prefix . \'posts\', $input );
return $input;
}
add_filter( \'posts_request\', \'unify_results_filter\' );
现在,这适用于帖子本身。然而,我希望他们的元值也一样。是否有类似的元请求过滤器?
最合适的回答,由SO网友:Sudeep K Rana 整理而成
为什么不使用wp\\u查询来检索帖子。在wp\\u查询中包含元值很容易,也是从wordpress数据库检索帖子的安全方法。
使用此代码切换到所需的博客id,然后在检索帖子后切换回原始博客。
<?php
/*
for global variables, since it is being changed or updated from time to time,
please refer to Related Resources for more information
*/
global $switched;
switch_to_blog(2);
echo \'You switched from blog \' . $switched . \' to 2\';
**//RUN WP_QUERY HERE**
restore_current_blog();
echo \'You switched back.\';
?>
参考文献:
Wp_query Codex
Switch to Blog Codex