Intereting Posts
Пустая страница для wp-admin после того, как я загрузил сайт с моего локального хоста на живой сервер Вызов php-файла из файла javascript в wordpress Как разделить уведомления BuddyPress выпадающие элементы на свой собственный верхний уровень? Параметры темы темы WordPress Ограничить количество изображений для загрузки за сообщение Как использовать if ($ wp_query-> query_vars == 'pagethatdontexist') без получения 404? Как подавить 404 Возможно ли (или желательно) разрешить открытый доступ к новому настраивателю темы для потенциальных клиентов? Как удалить строку состояния из редактора WordPress по умолчанию? Несколько Orderby используют случайный порядок WP_Query Класс или оболочка функций для кода плагина Добавить теги в пользовательский тип сообщения без ссылки меню Представление формы Ajax с панели администратора WordPress за Proxy – смешанный контент выделить конкретный текст в поле содержимого Пользовательский тип сообщения / вкладка

Условия WordPress не работают

Привет, я создаю jquery-аккордеон, который отлично работает на моем сайте.

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

Код находится здесь: http://pastebin.com/9anYAKa1

function faq_start_shortcode( $atts, $content = null ) { return '<div id="accordion">'; } function faq_question_shortcode( $atts, $content = null ) { return '<div class="accordionButton">' . $content . '</div>'; } function faq_answer_shortcode( $atts, $content = null ) { return '<div class="accordionContent">' . $content . '</div>'; } function faq_end_shortcode( $atts, $content = null ) { return '</div>'; } if ( is_single() || is_page() ) { add_shortcode('faqstart', 'faq_start_shortcode'); add_shortcode('question', 'faq_question_shortcode'); add_shortcode('answer', 'faq_answer_shortcode'); add_shortcode('faqend', 'faq_end_shortcode'); } 

Solutions Collecting From Web of "Условия WordPress не работают"

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

Решение: поместите условные выражения внутри обратных вызовов :

 function faq_start_shortcode( $atts, $content = null ) { if ( is_single() || is_page() ) { return '<div id="accordion">'; } } function faq_question_shortcode( $atts, $content = null ) { if ( is_single() || is_page() ) { return '<div class="accordionButton">' . $content . '</div>'; } } function faq_answer_shortcode( $atts, $content = null ) { if ( is_single() || is_page() ) { return '<div class="accordionContent">' . $content . '</div>'; } } function faq_end_shortcode( $atts, $content = null ) { if ( is_single() || is_page() ) { return '</div>'; } } add_shortcode('faqstart', 'faq_start_shortcode'); add_shortcode('question', 'faq_question_shortcode'); add_shortcode('answer', 'faq_answer_shortcode'); add_shortcode('faqend', 'faq_end_shortcode'); 

(ps вы можете использовать is_singular() как сокращенное ( is_single() || is_page() ) .