У меня есть следующие CPT и таксономия в моем WP:
CPT: журнал
Пользовательская таксономия: authorname (Журнал автора. Не то же, что и WP Author)
Таможенная таксономия: magazinename (название журнала)
Структура URL:
Как сделать следующее:
Если я перейду в hxxp: //domain.zzz/magazine/author-name/, будут перечислены только родительские страницы этого автора? (должны отображаться рекомендуемые изображения этой страницы)
Если я перейду к hxxp: //domain.zzz/magazine/author-name/magazine-name/, отобразится только первая страница, а также список (навигация) других страниц + текущей страницы, принадлежащей обе эти таксономии?
Если я перейду на страницу hxxp: //domain.zzz/magazine/author-name/magazine-name/magazine-page/, будет отображаться только эта страница со списком других страниц, относящихся к таксономии?
Какие .php-файлы мне нужно создать в папке темы и как будут выглядеть запросы в этих файлах?
Заранее благодарим за любые ответы.
Kr,
Энди
РЕДАКТИРОВАТЬ:
У меня есть следующий код в single-magazine.php :
<?php get_header(); ?> <?php $query = new WP_Query( array( 'post_type' => 'magazine') ); while ( have_posts() ) : the_post(); ?> <div class="entry magazine"> <?php the_content(); ?> </div> <?php endwhile; // end of the loop. ?> <div class="navigation"> <p>nav single-magazine.php</p> </div> <?php get_footer(); ?>
Хорошо, казалось, что с более чем одной таксономией было просто принятие желаемого за действительное.
Я согласился с этим:
CPT по-прежнему является «журналом»,
Вместо этого использовались термины иерархической таксономии:
Родитель: Имя автора Дети: журналы, которые каждый автор опубликует.
С приведенным ниже кодом мне удалось получить рабочую таксономию-authorname.php страницу:
<?php $taxonomies = array( 'authormagazine' // the custom tax ); $args = array( 'orderby' => 'id', 'order' => 'ASC', 'hide_empty' => true, 'fields' => 'all', 'slug' => 'andy' // the slug of the author name parent term ); $terms = get_terms($taxonomies, $args); $term_id = $terms[0]->term_id; $taxonomy_name = 'authormagazine'; $termchildren = get_term_children( $term_id, $taxonomy_name ); foreach ( array_reverse($termchildren) as $child ) { echo '<div class="row">'; $term = get_term_by( 'id', $child, $taxonomy_name ); // Here we get the permalink of the first post from each magazine $args2 = array( 'post_type' => 'magazine', 'tax_query' => array( array( 'taxonomy' => 'authormagazine', 'field' => 'slug', 'terms' => $term->slug ), 'posts_per_page' => 1 ), ); $query = new WP_Query($args2); $firstpost_link = $query->posts[0]->ID; echo '<div class="col-md-6 mag-title">'; echo '<h2><a href="' . get_permalink( $firstpost_link ) . '">' . $term->name . '</a></h2>'; echo '</div>'; echo '</div>'; // end row } ?>