我正在运行一个多站点网络,我已经设置了一个使用swith\\u to\\u blog()的sql查询;并查询帖子。
是否有一种方法可以在新的WP\\U查询中声明查询,并将该查询与另一个查询合并?
基本上,如果我这样做:
$number1 = new WP_Query($multisitequery);
我可以将其与以下内容合并:
$number2 = new WP_Query($normalquery);
$normalquery
保存分页、每页、摘录、标题等设置。。。在公文包短代码上。
我希望它包括我的新$multisite
查询
这能实现吗?只是想避免我创建一个全新的快捷码设置哈哈
非常感谢。罗里
EDIT========
我拥有的是:
$portfolio = array();
$portfolio = $settings;
进一步往下看我的投资组合功能“在所有$设置[\'options\']”之后,我有:
$portfolio_query = new WP_Query( $portfolio );
the
$portfolio_query
在页面模板上使用循环。
我想添加一个额外的查询,如下所示:
global $wpdb, $blog_id, $post;
$blogs = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM wp_blogs ORDER BY blog_id" ) );
$globalcontainer = array();
foreach ($blogs as $blog){
switch_to_blog($blog->blog_id);
$globalquery = query_posts($args);
$globalcontainer = array_merge( $globalcontainer, $globalquery );
restore_current_blog();
}
我假设
$globalcontainer
将是要合并到
wp_query();
.
因此,从理论上讲,我可以简单地:
$mergedqueryargs = array_merge($portfolio , $globalcontainer);
$portfolio_query = new WP_query($mergedqueryargs);
这是正确的吗?
其次,关于array\\u merge array key overwrite。。。。。如何停止覆盖?
SO网友:Igor Eremenko
因此,您可以将两个WP_Query 具有不同post_type 或其他排序数据,然后通过ids 合为一体WP_Query 完全有效的查询-为了在粘合时保留排序,您需要指定排序方式(>);post\\uu输入
我的例子是它如何创建一个新的WP_Query 循环,并可以通过调用new global_change_of_sorting_posts->change_query_posts() => query_posts() 您需要在处理显示帖子的周期之前调用!
class global_change_of_sorting_posts
{
public function get_posts_ids()
{
$query1 = new WP_Query([
\'fields\' => \'ids\',
\'posts_per_page\' => -1,
\'post_type\' => \'post\',
]);
$query2 = new WP_Query([
\'posts_per_page\' => -1,
\'fields\' => \'ids\',
\'post_type\' => \'custom-post\',
]);
$merge_ids_posts = $query1->posts + $query2->posts;
wp_reset_query();
return $merge_ids_posts;
}
public function get_posts_wp_query()
{
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$posts_per_page = 40;
$wp_query = new WP_Query([
\'posts_per_page\' => $posts_per_page,
\'paged\' => $paged,
\'post__in\' => $this->get_posts_ids(),
\'orderby\' => \'post__in\',
]);
while ($wp_query->have_posts()) {
$wp_query->the_post();
var_dump(get_the_ID());
}
}
public function change_query_posts($query_string)
{
parse_str($query_string, $args);
$args[\'post__in\'] = $this->get_posts_ids();
$args[\'orderby\'] = \'post__in\';
query_posts($args); # query conversion
}
}