Установить категорию для страницы

Моя текущая тема имеет раздел портфолио, в котором вы можете иметь элементы массива в зависимости от того, в какой категории они находятся. Моя проблема заключается в том, что у меня есть несколько страниц, которые я хочу быть в разделе портфолио, но не могу их добавить, потому что вы можете " t присваивать категории только отдельным страницам. Есть ли какой-либо метод или плагин вокруг этой проблемы?

Это какой-то код, который, как я считаю, вызывает категорию в моем портфолио .php:

<?php if(is_category() && in_category($current_id) || post_is_in_descendant_category($current_id)){?> <h1><?php single_cat_title(); ?></h1> <ul class="portfolioCategs"> <li><a href="<?php echo get_category_link(get_option('boldy_portfolio'))?>">All projects</a></li> <?php $categories = get_categories('hide_empty=1&child_of='.$categs); foreach ($categories as $cat) { echo ('<li><a href="'); echo (get_category_link($cat->cat_ID).'">'.$cat->cat_name.'</a></li>'); } ?> </ul> <?php } ?> <div style="clear:both"></div> <div class="gallery"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="portfolioItem"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <a href="<?php echo get_thumb_urlfull($post) ?>" rel="prettyPhoto" title="<?php the_title();?>"><?php the_post_thumbnail(); ?></a> <p><?php the_excerpt() ?></p> </div> <?php endwhile; ?> 

Спасибо, Ник.

Категория – это таксономия, применимая к Должности. Страницы не являются сообщениями. Страницы – это страницы.

Если вам нужен ваш контент для использования таксономии Category, у вас есть пара вариантов:

  1. Используйте для этого контента сообщения, а не страницы.
  2. Зарегистрируйте таксономию категории для статических страниц, например, разместив следующее в functions.php (или в плагине):

Это позволит использовать категории для статических страниц.

Grr … код не хочет показывать:

 <?php register_taxonomy_for_object_type( 'category', 'page' ); ?> 

Изменить 2

Правильный способ изменения запроса основного цикла – через pre_get_posts , например, так:

 function wpse29834_filter_pre_get_posts( $query ) { if ( is_category() && $query->is_main_query() ) { $query->set( 'post_type', array( 'post', 'page' ) ); } } add_action( 'pre_get_posts', 'wpse29834_filter_pre_get_posts' ); 

Использование pre_get_posts предпочтительнее использования query_posts() , хотя исходное решение работает в этом случае.

(Исходное решение)

Чтобы ваши страницы с разбивкой по категориям отображались в цикле на индексы архива категории, вам необходимо изменить запрос Loop в category.php , который вы используете с помощью функции query_posts() . например:

 <?php // Declare the global global $wp_query; // Define our custom args // We're telling the query to use // both Posts and Pages $custom_args = array( 'post_type' => array( 'post', 'page' ) ); // Merge the default query with our custom query $query_args = array_merge( $wp_query->query, $custom_args ); // Finally, query posts based on our custom args query_posts( $query_args ); ?> 

Разместите этот код перед выводом Loop.