Filter meta request

时间:2014-03-03 作者:rozklad

我有一个多站点,可以从一个特定的博客中查询特定的自定义帖子类型。看起来是这样的:

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\' );
现在,这适用于帖子本身。然而,我希望他们的元值也一样。是否有类似的元请求过滤器?

1 个回复
最合适的回答,由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

结束

相关推荐

如何在必用插件中使用is_MultiSite()?

我希望此代码在mu plugins文件夹中的插件中执行。在函数中执行时。php一切正常,但当我在mu插件中尝试它时,会创建一个空白页面。if (( is_multisite() && !current_user_can(\'manage_network\') ) || ( !is_multisite() && !current_user_can(\'create_users\'))) { add_action( \'init\', create_functio