Intereting Posts
Значение цвета wpColorPicker Пользовательский тип сообщения не будет регистрироваться Множественная база базового слизняка на странице архива категорий Как перенести веб-сайт такого размера (Архив: 24 ГБ, БД: 256 МБ) Добавьте текстовый текст Описательного текста в Виджет, чтобы пользователи могли видеть, что они содержат. CPT, пользовательская роль пользователя и проблема с менеджером пользователя Нужна помощь в настройке значения по умолчанию для переключателя в настройке темы Ошибка при установлении соединения с базой данных – с данными отладки Страница профиля для ролей пользователя Добавление столбца столбца третьей почты: postbox-container-3 Скрыть подкаталог на моем веб-сайте Как ограничить тип файла для загрузки? Необходимо создать демонстрационный сайт Theme, в котором есть несколько тем Как перечислять сообщения по срокам (пользовательская таксономия) добавьте ссылки на верхний уровень в меню wordpress, называемое «основным»,

Wp Enviroment проблема с включенным файлом

У меня есть файл, который я включаю на сайте index.php, single.php и т. д.

Этот файл ведет себя действительно страшно и действует так, как будто он не является частью
wordpress Enviroment Значение:

Я получаю ошибки на get_bloginfo ('template_url'), и он не будет
получить значения со страницы параметров.

Любая идея, что это может произойти?

Вот код включения, который у меня есть в моем index.php (где-то на средней странице):

<?php include(get_bloginfo('template_url') .'/extras/floater.php'); ?> 

(он содержит файл, поэтому проблема не существует)

Вот код активации «floater.php» …:

 <?php function establishParms() { // get yes/no values and urls.. $facebook = get_option('sg_show_facebookfloater'); $twitter = get_option('sg_show_twitterfloater'); $mail = get_option('sg_show_mailfloater'); // facabook if($facebook == "Yes") { $facebook = '<li><a href="'. get_option('sg_url_facebookfloater') .'"><img src="'. get_bloginfo('template_url') .'/images/facebook.png" alt="'.__('Visit us on Facebook', 'sagive').'" /></a></li>'; } // twitter if($twitter == "Yes") { $twitter = '<li><a href="'. get_option('sg_url_twitterfloater') .'"><img src="'. get_bloginfo('template_url') .'/images/twitter.png" alt="'.__('Visit us on Twitter', 'sagive').'" /></a></li>'; } // mail if($mail == "Yes") { $mail = '<li><a href="'. get_option('sg_url_mailfloater') .'"><img src="'. get_bloginfo('template_url') .'/images/mail.png" alt="'.__('Contact us', 'sagive').'" /></a></li>'; } } ?> <div class="floatingBar" > <ul class="gotop"> <?php echo $facebook; ?> <?php echo $twitter; ?> <li><a href="#top"><?php echo '<img src="'. get_bloginfo('template_url') .'/images/mail.png" alt="" />'; ?></a></li> <li><a href="#top"><?php echo '<img src="'. get_bloginfo('template_url') .'/images/up.png" alt="" />'; ?></a></li> </ul> </div> 

,
Ничего особенного там тоже … я остался без ответа, чтобы думать.

Также … возникла еще одна странная проблема с этим сайтом (который отлично работает на локальном хосте)
У меня есть функция, которая сделала простую вещь внутри файла functions.php:

 function setPaths() { $templateUrl = get_bloginfo('template_url'); $imagesUrl = get_bloginfo('template_url')."/images/"; } 

Но при попытке использовать $ templateUrl в файле index.php это ничего мне не давало.

Буду любить вашу помощь 🙂
Приветствия, Sagive

ПЕРЕСМОТР:

Вот пример ошибки, которую я получил:

 Fatal error: Call to undefined function get_bloginfo() in /home/workspac/public_html/sagive/wp-content/themes/sagive-spaceJunkie/extras/floater.php on line 29 

Ошибка указывает, что ваш файл «floater.php» вызывается за пределами созданной страницы WordPress. Добавьте это в начало файла, чтобы использовать функции WordPress.

EDIT: см. Ответ Брайана Фэгтера об использовании пути сервера для вашего включения.

 if ( !function_exists( 'get_bloginfo' ) ) require( '../../../wp-blog-header.php' ); // check path leads to root of your WordPress install 

Что касается вашей функции setPaths, вы можете либо установить их как глобальные переменные, либо использовать константы. В зависимости от того, для чего вы их используете, вы можете определить их непосредственно в файле functions.php вместо вызова дополнительной функции.

 function setPaths() { // option one global $templateUrl, $imagesUrl; $templateUrl = get_bloginfo( 'template_url' ); $imagesUrl = $templateUrl . "/images/"; // no need to call get_bloginfo again // option two preferred assuming these values are not changing. define( 'TEMPLATE_URL', get_bloginfo( 'template_url' ) ); define( 'IMAGES_URL', TEMPLATE_URL . '/images/' ); } /* setPaths(); global $templateUrl, $imagesUrl; echo $templateUrl; echo $imagesUrl; echo TEMPLATE_URL; echo IMAGES_URL; */ 

Вы должны включить использование пути к серверу, а не URL. Это даст вам доступ к функциям WordPress.

 include('extras/floater.php'); 

Обновление . Ниже приводится подробное объяснение того, почему плохая практика заключается в том, чтобы включить файл по URL-адресу. Вот что происходит:

  1. Существует врожденное наследование, когда вы включаете файл через путь к серверу. Он имеет доступ к функциям, классам, переменным, которые были загружены до включения.
  2. Когда вы включаете файл по URL-адресу, вы не получаете ни одного из этих наследований, потому что файл загружается извне. Когда вы это сделаете, floater.php загружается БЕЗ функций WordPress, таких как get_option () и get_bloginfo (). Включение URL-адресов, как будто вы делаете простой скрипит экрана.

Если относительный путь к серверу не работает, вы можете использовать собственную константу WordPress, чтобы определить путь к floater.php.

 include(WP_CONTENT_DIR.'/themes/yourtheme-name/extras/floater.php');