Я столкнулся с той же проблемой, пытаясь понять, как это сделать, и я последовал совету Soju и придумал решение. Возможно, это будет лучшее решение, но я так и думал об этом. Я и мой друг делают блог об аниме-обзоре, и мы с ним будем писать обзор в том же аниме.
я первый создал два типа сообщения:
- аним: главную страницу на конкретном аниме, как описание, фотографии и т.д.
- отзывов: обзор автора на аниме. параметры, которые я включил здесь, - это редактор, заголовок и автор. Наряду с соответствующей таксономией аниме. Это все, что нужно здесь
Затем я создал систематику для названий аниме так, когда пользователь должен написать рецензию на аниме, который не был добавлен в качестве обзора все же они могут добавить название в систематике.
Я связал таксономию как с post_types, так и с wala! Это почти все, что вам нужно.
Итак, теперь, когда вы хотите написать новый отзыв для нового аниме, сначала добавьте первый пост аниме и запишите, что такое аниме, и включите картинки и т. Д. Добавьте название к таксономии и проверьте его. После этого вы создаете новое сообщение отзывов типа post и пишете свой отзыв, не забудьте проверить правильное название в вашей таксономии, для какого аниме это будет, тогда вы готовы к работе!
Проблема 1: Как включить это в мой цикл?
Ну, вы не хотите включать оба типа сообщений в свой цикл, вы просто хотите включить сообщения и другое аниме post type в свой цикл, чтобы в своих функциях выполнялось следующее.php file:
function include_custom_post_types($query) {
global $wp_query;
// Get all custom post types
$custom_post_type = get_query_var('post_type');
// Get all post types
$post_types = get_post_types();
// If what you are getting is a category or a tag or that there are no custom
// post types you just want to set the post types to be the current post types
if ((is_category() || is_tag()) && empty($custom_post_type))
$query->set('post_type' , $post_types);
// Set the custom post types you want to ignore
$ignore_types = array('reviews');
//Unset the post types that are gonna be ignored
foreach($post_types as $key=>$type)
{
if(in_array($type,$ignore_types))
{
unset($post_types[$key]);
}
}
// Set the post types for the query
if ((is_home() && false == $query->query_vars['suppress_filters']) || is_feed())
$query->set('post_type', $post_types);
return $query;
}
add_filter('pre_get_posts' , 'include_custom_post_types');
Задача 2: Как просмотреть отзывы?
Я решил это, создав еще один файл single.php и переименовал его в single-post_type_name.php. Таким образом, в этом случае я создал файл anime.php для моего аниме типа сообщения. Тогда вместо содержания я хочу, чтобы получить все отзывы для этого конкретного анима, так что я добавил следующее в файл в области основного содержания:
<?php
//You grab the taxonomy that you have selected for this post
$terms = wp_get_post_terms(get_the_ID(), 'animes_reviewed');
// This is the args array for the criteria that the posts need to be in
$args = array(
// This is the post type of where your reviews are at
post_type' => 'reviews',
// this is for searching the taxonomy usually it's
// taxonomy_name => checked_taxonomy
'anime' => $terms[0]->name,
'post_status' => 'publish'
);
// Grab the posts
$posts = get_posts($args);
//Here I echo out the information for debugging purpose, but
//Here is where you can do HTML to display your reviews
foreach($posts as $post)
{
echo($post->post_content);
the_author_meta('nickname', $post->post_author);
}
?>
Вы можете сделать гораздо больше с этим добавлением более таксономией и т.д. Я действительно осуществил обзор эпизодов, просто добавив таксономию и добавив критерии для поиска в разделе сообщений. Надеюсь, это поможет вам, может быть, немного поздно, хотя :(Спасибо soju за рекомендации пользовательских типов сообщений!
Лучше иметь 1 отзыв = 1 сообщение, нет? – soju
Предпочтительно, да. Но как бы я мог группировать их? – adamturtle