add_action wp_head не работает
Я пытаюсь добавить некоторый код в head (а именно блок скрипта отслеживания) через плагин, который я разрабатываю.
У плагина есть интерфейс, где пользователь вводит некоторые детали, которые затем добавляются в таблицу опций. Пока все это работает отлично. Но затем я хочу написать условное выражение: если есть значение, то добавить в head. В основном, у меня все это в главном файле плагина и выглядит так:
if(get_option( 'MyOptionName' )){
function testingone(){ ?>
<script>var Script = GoesHere; </script>
<?php ;}
add_action('wp_head','testingone');
}
Я пробовал размещать это внутри самого блока, который извлекает данные и затем добавляет в опции, но это не сработало, затем я решил сделать это таким образом, где он проверяет, есть ли опция в таблице, но это также не добавляет ничего в head. В некоторых местах я видел, что люди помещают add_action перед функцией, но в кодексе показан пример, где он находится после. Но в любом случае я пробовал и не преуспел.
Кто-нибудь видит, где ошибка?
Спасибо

Вынесите add_action()
за пределы функции и поместите условие внутрь callback-функции. Также, если вы выводите скрипт напрямую, используйте wp_print_scripts
вместо wp_head
. У вас также есть синтаксическая ошибка.
function testingone(){
if( get_option( 'MyOptionName' ) ) {
?>
<script>var Script = GoesHere; </script>
<?php
}
}
add_action( 'wp_print_scripts','testingone' );

Попробуйте изменить ваш код следующим образом:
function testingone() {
if( FALSE !== get_option( 'MyOptionName' ) ) {
echo( 'ok, это выводится в head!' );
}
}
add_action( 'wp_head', 'testingone' );
Также проверьте в файлах вашей темы (скорее всего в header.php
), что функция wp_head()
вызывается, и убедитесь, что опция MyOptionName
установлена для сайта.
Дополнение — Вам также следует использовать wp_enqueue_script()
для добавления JavaScript на ваш сайт, вместо простого вывода в <head>
.
Ссылки

function plugin_script() {
wp_enqueue_script( 'Jquery-min', WP_PLUGIN_URL. '/Test Plugin/jquery-min.js', false, '1.11.0' );<br/>
wp_enqueue_style('pluginstyle', WP_PLUGIN_URL. '/Test Plugin/pluginstyle.css',false,'1.0',"all");<br/>
}
add_action( 'wp_head', 'plugin_script' );
Хук "wp_head" срабатывает внутри секции "head" HTML-документа.
Функция wp_enqueue_script() используется для подключения скриптов, а wp_enqueue_style - для таблиц стилей из плагина. "WP_PLUGIN_URL." получает данные из папки плагина в темах. "Test plugin" - это название вашего плагина. "pluginstyle.css" - таблица стилей плагина. "jquery-min.js" - JavaScript-файл плагина.

Пожалуйста, объясните, как это работает. Просто сброс кода - не лучший ответ.

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

Я не пробовал это, я предлагал вам добавить некоторое объяснение к опубликованному коду о том, как это отвечает на исходный вопрос.

Спасибо за ваше предложение, на самом деле я новичок в этом @ bravokeyl
