【发布时间】:2014-12-07 21:46:24
【问题描述】:
我有一个页面,可以从同一标签或类别下的多个博客中检索博客文章。我在检索博文的永久链接时遇到问题,它一直重定向到同一个博客并说该页面不存在,即它总是转到第 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();
}
?>
【问题讨论】:
-
您的问题缺少一个问题...
-
@Qix 问题是我需要正确重定向到正确的博客文章,现在 switch 语句被忽略,它总是尝试在博客 #5 中查找具有特定标题的文章,我需要先根据帖子的作者切换到正确的博客。
标签: php mysql wordpress tags blogs