@Stone-Studio

Как правильно написать шаблон рубрики?

Информация разбита на рубрики: портфолио, отзывы, услуги. Но HTML шаблоны для каждой рубрики разные. Как мне правильно выводить эту информацию? Все это ведь должно находиться в одном шаблоне рубрики, но внутри него должны лежать разные шаблоны?
Информация, стилизация.. Все разное! Но ведь все это рубрики.. Объясните, пожалуйста.
  • Вопрос задан
  • 202 просмотра
Решения вопроса 2
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
портфолио, отзывы, услуги - по правильному надо делать через разные типы таксономий, однако если информация уже забита, то можно и через одну.
В данном случае Иерархия шаблонов под ваши цели штука хорошая однако не универсальная, есть вариант сильно лучшее.
есть экшены
// Сохранение данных при редактировании термина таксономии
add_action( 'edited_{taxonomy}', 'my_save_function' );
// Сохранение данных при создании термина таксономии
 add_action( 'create_{taxonomy}', 'my_save_function');
// Добавление чего то к созданию термина таксономии
add_action( '{taxonomy}_add_form_fields', 'my_add_term_function');
// Добавление чего то к редактированию термина таксономии
add_action( '{taxonomy}_edit_form_fields', 'my_edit_term_function' );


Добавляете через my_add_term_function my_edit_term_function любым доступным вам способом радиобаттон с названиями шаблонов.

Значения сохраняете в опцию, в общем виде функция сохранения будет выглядеть так.
/**
     * Сохраняет  метаданные термина в опцию
     * @param $term_id - объект категории
     */
    function my_save_function( $term_id ) {
        $term_meta = array();
        if ( isset( $_POST['my_options_array_name'] ) ) {

            foreach ( $_POST['my_options_array_name'] as $key => $val )
            {
                $term_meta[$key] = $val;
            }

            update_option( '_my_options_term_'.$term_id, $term_meta );
        }

    }


Cами шаблоны складываете в отдельную папку, например - tax-templates
и обзываете их template-{name}

Код шаблона категории в общем виде будет выглядеть так
<?php get_header();
$my_template = ! empty( get_option( '_my_options_term_' . get_queried_object()->term_id )) ? get_option( '_my_options_term_' . get_queried_object()->term_id ) : '';
 ?>
<div class="wraper">
       <?php get_template_part('tax-templates/template',$my_template); ?>
</div>
<?php get_footer(); ?>


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

Войдите, чтобы написать ответ

Похожие вопросы