Я пишу простой плагин для 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: Я удалил свой дополнительный вопрос о том, как передать переменную.Это новый вопрос здесь.