Intereting Posts
Как загрузить несколько иерархических категорий из functions.php Woocomerce вытягивает неправильное время с сервера -5 часов разницы Лучший способ запроса Пользовательские таксономии, используемые для пользовательского типа сообщений Не публикуйте и не создавайте, если почта уже существует Возможности WordPress: edit_user vs edit_users Заголовок усеченного виджета Страница 2 из результатов поиска показывает главную страницу Показать все сообщения из категории с и без условий в хронологическом порядке Класс css_author_posts_link изменение результата поиска только из выдержки до полного содержимого Где находится правильный файл .mo в репозитории языков? в любом случае поставить <? php echo do_shortcode («»); ?> внутри $ outprint = sprintf () Как добавить класс в кнопку отправки комментариев? Проверьте, существует ли текущий идентификатор и значение сайта в WPDB Как показывать только идентификатор страницы как класс тела?

Передача переменной в функцию, подключенную к исходному содержимому

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

Это кажется простым, но что-то не работает, и я думаю, что я не понимаю, как правильно передать переменную в функцию. Я предполагаю, что переменная, назначенная вне функции, будет доступна в функции. Вот мой шаблон:

//* Template Name: Notification Template $notice ="ALERT!"; //This will be set dynamically from code above, but I'll keep it simple for now. if($notice){ //echo $notice ; // If I echo here, it displays at the top of the page. remove_action( 'genesis_entry_content', 'genesis_do_post_content' ); add_action ( 'genesis_entry_content', 'do_custom_content', 5 ); function do_custom_content(){ echo $notice; // This is not displaying anything! echo 'Test Output'; //This text does display } } 

Когда я повторяю уведомление $ в функции do_custom_content (), ничего не происходит. Поэтому, вероятно, я не понимаю, как работает php, поскольку $ notice не переходит в функцию do_custom_content ().

Solutions Collecting From Web of "Передача переменной в функцию, подключенную к исходному содержимому"

Если вы собираетесь динамически настраивать уведомление, то я бы просто затягивал уведомление в функции обратного вызова. Но если вы не можете сделать это по какой-либо причине, вы можете сделать небольшое волшебство:

 if( $notice ) { remove_action( 'genesis_entry_content', 'genesis_do_post_content' ); add_action ( 'genesis_entry_content', function() use ($notice) { echo $notice; }, 5 ); } 

Это use ключевое слово use php для анонимных функций .