Используйте шорткод WordPress для добавления тегов

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

Я знаю, что могу добавить теги с помощью хука wp_head, но мне нужно содержимое метатега чтобы соответствовать строке, созданной плагином. Я мог бы переместить весь код в заголовок, но тогда я не уверен, как ссылаться на него позже из шорткода. Другими словами, когда я объявляю переменную в с фильтром, она недоступна для методов класса, которые я вызываю с помощью короткого кода.

Есть идеи?

ОБНОВЛЕНИЕ:

Было предложено хорошее решение, в котором функция-обработчик шорткода добавляет действие к хуку wp_head:

add_shortcode('fakeshortcode', 'fakeshortcode_handler');
function fakeshortcode_handler() {

    function add_meta_tags() {
        //echo stuff here that will go in the head
    }
    add_action('wp_head', 'add_meta_tags');
}

Это здорово, но проблема в том, что wp_head происходит ДО шорткод анализируется и добавляет действие (так что ничего не добавляется в голову с кодом выше ALONE). Чтобы заставить его работать, я позаимствовал решение в этом посте. По сути, это функция, которая «заглядывает вперед» в сообщение и видит, есть ли какой-либо шорткод. Если это так, то IT добавляет add_action('wp_head'... .

EDIT: Я удалил свой дополнительный вопрос о том, как передать переменную.Это новый вопрос здесь.

8
задан Community 23 May 2017 в 12:09
поделиться