jared
  • 0
Эксперт

Перенаправление на шаблон для отдельных сообщений с настраиваемыми полями

  • 0

Есть ли способ использовать is_single() файл functions.php моего плагина? В настоящее время мой код выглядит так:

if(is_single()) :
    function my_template() {
        include(PLUGINDIR . '/supersqueeze/all.php');
        exit;
    }
    add_action('template_redirect', 'my_template');
endif;

Но почему-то он вообще не работает. Если я удалю if(is_single()), это работает, но для всех страниц.

И затем, как только я заработаю, мне нужно будет отфильтровать его еще раз, чтобы увидеть, имеет ли сообщение определенное значение настраиваемого поля, скажем, имя будет Design и значение будет Custom .

Заранее благодарю всех, кто может мне помочь.

Share
  1. Проблема с вашим кодом заключается в том, что вы проверяете is_single() при первой загрузке вашего плагина, до запуска глобального запроса, поэтому is_single() по-прежнему возвращает false. Вы должны переместить проверку is_single() в свою функцию my_template:

    function my_template() {
        if(is_single() && have_posts() && 'Custom' == get_post_meta(get_the_ID(), 'Design')) {
        include(PLUGINDIR . '/supersqueeze/all.php');
        exit;
        }
    }
    add_action('template_redirect', 'my_template');
    
    • 0

Оставить ответ

You must login to add an answer.