Шаблон:категории, тэги
-
Добрый день!
Мой сайт состоит из 6 блогов. На главной странице перечислены категории и теги. При нажатии гость перенаправляется на страницу, где показаны все записи со всех блогов, помеченные выбранной категорией/тэгом. На практике при нажатии на любой тэг/категорию, на странице высвечивается один и тот же набор записей.
Часть кода в шаблоне tags.php:<?php global $wpdb; global $post; $tag = $_GET['avain']; $postarr = array(); $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); ?> <div class="post"><header class="post-header"><div class="date-holder"><span><?php the_time('j F, Y') ?></span></div> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></header> <div class="post-content"><?php the_content(); ?></div></div> <?php endforeach; wp_reset_postdata(); } ?>
Код в шаблоне functions.php:
function tag_posts() { global $wpdb; $tag = $_GET['avain']; $taxarr = array(); $postarr = array(); $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 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)"); global $post; foreach ($posts as $post):setup_postdata($post); '<div class="post"><header class="post-header"><div class="date-holder"><span>'.the_time('F jS, Y').'</span></div>'; '<a href="'.$post->guid.'">'.$post->post_title.'</a></header>'; '<div class="post-content">'.the_content().'</div></div>'; endforeach; } }
Очень надеюсь на вашу помощь!
- Тема «Шаблон:категории, тэги» закрыта для новых ответов.