我有一个页面可以从同一个标签或类别下的多个博客中检索博客帖子。我在检索博客帖子的固定链接时遇到问题,它一直重定向到同一个博客并说该页面不存在,即它总是转到第5行中所述的博客#5并忽略switch语句这是我的代码:
<?php
global $wpdb;
global $post;
$tag = $_GET['avain'];
$postarr = array();
switch_to_blog( 5 );
$blogs = $wpdb->get_results( "SELECT blog_id FROM {$wpdb->blogs} WHERE blog_id != {$wpdb->blogid} AND site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0'", ARRAY_A);
array_unshift($blogs, 1);
foreach($blogs as $blog) {
$wpdb->set_blog_id($blog[ 'blog_id' ]);
$tax_id = $wpdb->get_var("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE (taxonomy = 'post_tag' OR taxonomy = 'category') AND term_id IN (SELECT term_id FROM $wpdb->terms WHERE name='$tag')");
$post_id = $wpdb->get_results("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = $tax_id");
foreach ($post_id as $id) {
$postarr[] = $id->object_id;
}
$postsAsCommaSepString = implode( ',', $postarr );
$posts = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}posts WHERE ID IN ($postsAsCommaSepString)");
foreach ($posts as $post):setup_postdata($post);
$author = get_the_author();
switch ($author) {
case "Kate":
switch_to_blog(3);
break;
case "Maria":
switch_to_blog(4);
break;
case "Germanica":
switch_to_blog(5);
break;
}
?>
<div class="post"><header class="post-header"><div class="date-holder"><span><?php the_time('j F, Y') ?></span></div>
<a href="<?php echo get_permalink($post->ID); ?>"><?php the_title(); ?></a></header>
<div class="post-content"><?php the_content(); ?></div></div>
<?php endforeach;
wp_reset_postdata();
}
?>
答案 0 :(得分:0)
是因为你把
switch_to_blog(5);
在第5行,并且页面会在切换语句被读取之前将您重定向到该博客?
只是问,我不太了解您的代码,但我希望您觉得这很有帮助!