Несколько авторов в одном сообщении в WordPress

#wordpress

#wordpress

Вопрос:

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

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

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

Комментарии:

1. Должно быть лучше, чтобы 1 отзыв = 1 сообщение, не так ли?

2. Предпочтительно, да. Но как бы я их сгруппировал?

Ответ №1:

Как я уже сказал, было бы лучше иметь 1 отзыв = 1 сообщение.

Итак, я думаю, что лучшим способом добиться этого должно быть создание типов сообщений :

  • Фильм
  • обзор с полем ссылки на фильм

И измените шаблон поста, чтобы фильм и связанные с ним обзоры отображались на одной странице.

Альтернативным решением должно быть использование таксономии для обработки фильмов и прикрепления к ним сообщений.

Ответ №2:

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

Сначала я создал два типа сообщений:

  • аниме: главная страница конкретного аниме, например, описание, картинки и т.д.
  • отзывы: авторский отзыв об аниме. параметры, которые я включил здесь, — это редактор, заголовок и автор. Вместе с соответствующей таксономией аниме. Это все, что здесь нужно

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

Я связал таксономию как с post_types, так и с wala! Это практически все, что вам нужно.

Итак, теперь, когда вы хотите написать новый обзор для нового аниме, вы сначала добавляете тип аниме-поста и записываете, о чем аниме, включаете картинки и т.д. Добавьте заголовок в таксономию и проверьте его. После этого вы создаете новый пост типа «Отзывы» и пишете свой отзыв, не забудьте проверить правильное название в вашей таксономии для того, к какому аниме это относится, тогда вы готовы к работе!

Проблема 1: Как мне включить это в свой цикл?

Ну, вы не хотите включать оба типа сообщений в свой цикл, вы просто хотите включить сообщения и другой тип сообщения anime в свой цикл, поэтому вы делаете следующее в своем functions.php файл:

 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()) amp;amp; 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() amp;amp; 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 . Итак, в этом случае я создал single-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 за рекомендацию пользовательских типов сообщений!