Intereting Posts
как создать настраиваемое обновление ajax для отображения новых сообщений в системе newpress Получить сообщение в соответствии с текущей таксономией Есть ли способ проверить, какие категории wordpress были созданы с помощью какого пользователя? Получить таксономию должности иерархически Значения полей API импорта / экспорта? Каков правильный способ создания пользовательской главной страницы? Shortcode, но без знака равенства? Объединение нескольких таксономий в один URL-адрес Страница поиска для настраиваемого типа сообщения Мне нужно добавить пользовательскую «обложку» для каждого нового плагина или пользовательской настройки? Пользовательские поля не сохраняются в новейших WordPress 3.0.1 Форма создания конечного пользователя! Как сохранить пользователя на одной странице в случае ошибки? Как определить языковые обновления WordPress? WP 3.1 пользовательские типа post permlinks Приобретение Gravatar

Показать сообщения дочерней категории в шаблоне

У меня есть пользовательский тип сообщения, называемый freebies. Я также хочу использовать archive-freebies.php для дочерних категорий. Я добавил в мои functions.php следующее:

function inherit_template() { if (is_category()) { $catid = get_query_var('cat'); $cat = &get_category($catid); $parent = $cat->category_parent; $cat = &get_category($parent); if ($cat->cat_ID == 45){ include (TEMPLATEPATH . '/archive-freebies.php'); exit; } } } add_action('template_redirect', 'inherit_template', 1); 

Пока он работает, он загружает правильный шаблон архива, но показывает, что сообщений нет. Что мне нужно изменить? Я хотел бы, чтобы шаблон также отображал название категории. Я просмотрел условные теги, но для пользовательских типов сообщений их нет?

Это мой achive-freebies.php

 <?php get_header(); ?> <section id="main"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <article> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" data-lightbox-type="ajax"><?php the_title(); ?></a></h2> <div class="entry"> <?php the_content(); ?> </div> <?php do_quickshare_output(); ?> </article> <?php endwhile; ?> <div class="nav-previous alignleft backlink"><?php next_posts_link( 'Older posts' ); ?></div> <div class="nav-next alignright rightlink"><?php previous_posts_link( 'Newer posts' ); ?></div> <?php else : ?> <p><?php _e('Sorry, no posts matched your criteria in freebies.'); ?></p> <?php endif; ?> </section> <?php get_sidebar('2'); ?> <br style="clear:both;" /> <?php get_footer(); ?> 

Я попробовал еще одну функцию загрузки шаблона

 add_filter( 'template_include', 'freebie_page_template', 99 ); function freebie_page_template( $template ) { if ( is_post_type_archive( 'freebies' ) ) { $new_template = locate_template( array( 'archive-freebies.php' ) ); if ( '' != $new_template ) { return $new_template ; } } return $template; } 

Но это совсем не работает

Solutions Collecting From Web of "Показать сообщения дочерней категории в шаблоне"

Я искал, искал и пытался, и, наконец, нашел ……..

 <?php global $wpdb; $categories = $wpdb->get_results("SELECT $wpdb->terms.term_id AS id, name, description from $wpdb->terms INNER JOIN $wpdb->term_taxonomy ON $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id WHERE parent = '$cat' ORDER BY name ASC"); foreach($categories as $category) : ?> <h2><?php echo $category->name; ?></h2> <ul> <li><a href="<?php echo get_category_link($category->id);?>"><b><?php echo $category->description; ?></b></a> Posts on this campaign: <?php global $post; $myposts = get_posts("category=$category->id"); foreach($myposts as $post) : setup_postdata($post); ?> - <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php endforeach; ?> </li> </ul> <?php endforeach; ?> 

Хорошо, я наконец понял. Проблема заключается в том, что пользовательские типы сообщений не включены в запрос по умолчанию. Это означает, что пользовательские сообщения отображаются на страницах категорий и архивов, но больше не на дочерних категориях. have_posts() просто пуст.

Чтобы включить их, я должен добавить сюда функции php: http://css-tricks.com/snippets/wordpress/make-archives-php-include-custom-post-types/

(pls ссылается на комментарий Jon B, если ваше меню ушло 🙂

Итак, благодаря этому, у меня есть настраиваемые бесплатные типы сообщений, которые отображаются в файле archive-freebies.php. Сообщения от дочерней категории халявы отображаются в шаблоне category-freebies.php при добавлении этого кода в functions.php

 // make category use parent category template function load_cat_parent_template($template) { $cat_ID = absint( get_query_var('cat') ); $category = get_category( $cat_ID ); $templates = array(); if ( !is_wp_error($category) ) $templates[] = "category-{$category->slug}.php"; $templates[] = "category-$cat_ID.php"; // trace back the parent hierarchy and locate a template if ( !is_wp_error($category) ) { $category = $category->parent ? get_category($category->parent) : ''; if( !empty($category) ) { if ( !is_wp_error($category) ) $templates[] = "category-{$category->slug}.php"; $templates[] = "category-{$category->term_id}.php"; } } $templates[] = "category.php"; $template = locate_template($templates); return $template; } add_action('category_template', 'load_cat_parent_template'); 

Я не совсем понимаю, почему это работает, поскольку мне не удалось отобразить записи дочерних категорий в том же порядке, что и родительский, и из иерархии шаблонов, которые должна пройти категория перед архивом, но сообщения теперь находятся в собственном шаблоне, поэтому его также хорошо. Если кто-то может предложить более правильный способ, пожалуйста!

Я ранее пытался изменить эту функцию для работы с архивами, но это не сработало.

Надеюсь, это поможет кому-то