Поддержка Проблемы и решения Как динамически менять шаблон поста в зависимости от к

  • Подскажите пожалуйста, как лучше с помощью плагина динамически менять шаблон поста.
    Сначала делала так:

    function post_on_one () {
    
       if (is_single() && in_category('1') && !(is_attachment())) {
    
          include( 'template/single-1.php');
          exit;
       }
    }
    
    add_action('template_redirect', 'post_on_one');

    Но в этом способе меня смущает то, что при просмотре эттачментов, лежащих в других категориях вместо стандартного, используется мой частный шаблон, предназначенный для постов. Чтобы это исключить использовала условие !(is_attachment()).

    Теперь делаю так, через фильтр:

    add_filter('single_template','single_prtf_template');
    
    function single_prtf_template($path_to_standart_template) {
    
       if (is_single() && in_category('1') ) {
    
          if (file_exists(WP_PLUGIN_DIR.'/post-types/template/single-1.php'))  {
    
    	     return WP_PLUGIN_DIR.'/post-types/template/single-1.php';
          }       
    
       } 
    
       return $path_to_standart_template;
    }

    Может быть можно, не подсовывать свой шаблон, а как-то отфильтровать стандартный?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Может, я глупость спрашиваю, тогда извините.
    Но все-таки может мне кто-нибудь ответит правильно ли таким образом менять шаблон, или может быть есть более разумный способ???

    Модератор Yuri

    (@yube)

    Первый способ считаю вполне разумным. По простой причине — сам им пользуюсь 🙂

    Кстати, а чего делают шаблоны в WP_PLUGIN_DIR? Им бы со своими родственниками в TEMPLATE DIR было бы уютнее.

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

    Кстати, а чего делают шаблоны в WP_PLUGIN_DIR? Им бы со своими родственниками в TEMPLATE DIR было бы уютнее.

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

    function post_on_one () {
    
       if (is_single() && in_category('1') && !(is_attachment())) {
    
          include( 'template/single-1.php');
          exit;
       }
    }
    
    add_action('template_redirect', 'post_on_one');

    Здесь папка template/single-1.php тоже входит в состав плагина.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как динамически менять шаблон поста в зависимости от к» закрыта для новых ответов.