2013-05-28 3 views
0

Эта проблема сводит меня с ума.Wordpress: functions.php Нарушение стандартных функций WP

Сегодня утром тема Wordpress, которую я создаю, включала очень простой файл functions.php, и мой сайт работал правильно. Сегодня я написал новую функцию для итерации по категориям и перечисления определенных сообщений, и это единственное изменение, которое я сделал для functions.php.

После загрузки измененного файла функций на сервер, я получаю ошибку 500 каждый раз, когда я обращаюсь к своему сайту. Я, однако, «ОК, моя новая функция что-то сломала, я просто удалю ее из functions.php и начну». Однако, вернувшись к исходной версии файла (версия, которая работала этим утром), я все еще получаю 500 ошибок.

Если я удалю функции functions.php с сервера, мои страницы загрузятся (без их боковых панелей, очевидно, но они загружаются). Как только я снова загружаю файл (тот же самый вариант, который работал этим утром), я получаю 500 ошибок.

Я проверил журнал ошибок, и я обнаружил, что, когда у меня есть functions.php на сервере, Wordpress (или, скорее всего, php) больше не может найти функцию get_template_directory_uri(). Я не сделал ничего, чтобы изменить какие-либо стандартные функции Wordpress, и это происходит только тогда, когда у меня загружена функция functions.php.

Что может быть причиной того, что функции.php нарушают стандартные функции?

Вот мой файл functions.php:

<?php 

/* ********************************************* 
* Create left-hand sidebar for single.php 
* 
* TODO: Finalize $sricks_single_left_sidebar. 
* ********************************************/ 
$sricks_single_left_sidebar = array(
    'name'   => 'Left Sidebar', 
    'id'   => 'lt-single', 
    'description' => 'This is the sidebar on the left side of the single.php template page.', 
    'before_widget' => '<!-- Left-Single Sidebar --><div class="lt-single">', 
    'after_widget' => '</div> <!-- End Left-Single Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_single_left_sidebar); 

/* ********************************************* 
* Create header_search sidebar to be used on 
* all pages 
* ********************************************/ 
$sricks_header_search_sidebar = array(
    'name'   => 'Header Search', 
    'id'   => 'header-search', 
    'description' => 'This is the search box in the page header.', 
    'before_widget' => '<!-- Header-Search Sidebar --><div class="header-search">', 
    'after_widget' => '</div> <!-- End Header-Search Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_header_search_sidebar); 
?> 
+0

В файле 'functions.php' нет ничего плохого. Это должно быть что-то еще. Включите отладку и скажите мне, что выводит. Измените 'wp-config.php' и поместите это в него:' define ('WP_DEBUG', true); ' –

+0

Спасибо, Спенсер Кэмерон. После включения отладки я обнаружил причину проблемы. Поскольку я новичок, я не могу ответить на свой вопрос еще 7 часов, но в тот момент я обновлю ответ. – sricks3

+0

Я рад, что помог. Я дам ответ на 'WP_DEBUG', так как это осветил причину вашей проблемы. –

ответ

1

Спасибо всем, особенно Спенсеру Кэмерон. Оказывается, я забыл открытые и закрытые круглые скобки в объявлении моей новой функции. Wordpress читает функции functions.php перед любой из встроенных функций, поэтому он просто застрял там.

Когда я отправил свой код, я оставил свою новую функцию, потому что я удалил все из тела функции; что может пойти не так? Извлеченный урок ...

2

Чтобы найти причину проблем, в WordPress когда вы получаете 500 ошибки уровня, пустой белый экран, или любое другое странное или неожиданное поведение, определить WP_DEBUG константа в wp-config.php.

Как это:

define('WP_DEBUG', true);

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

Смежные вопросы