这个问题让我发疯。
今天早上,我正在创建的Wordpress主题包含一个非常简单的functions.php文件,我的网站工作正常。今天,我写了一个新函数来迭代类别并列出某些帖子,这是我对functions.php的唯一改变。
将修改后的函数文件上传到服务器后,每次访问我的站点时都会出现500错误。我虽然,“好吧,我的新功能打破了一些东西。我只是将它从functions.php中删除并重新开始。”但是,在恢复到原始版本的文件(今天早上的版本)后,我仍然收到500错误。
如果我从服务器上删除了functions.php,我的页面会加载(显然没有侧边栏,但会加载)。一旦我再次上传文件(今天早上工作的版本相同),我就会收到500错误。
我检查了错误日志,我发现,当我在服务器上安装了functions.php时,Wordpress(或更有可能是php)无法再找到get_template_directory_uri()函数。我没有做任何改变任何标准Wordpress函数的事情,这只有在我上传了functions.php时才会发生。
什么可能导致functions.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 :(得分:2)
要在出现500级错误,空白屏幕或任何其他奇怪或意外行为时在 WordPress 中查找问题原因,请在{{1>中定义WP_DEBUG
常量}}
喜欢这样:
wp-config.php
如果您正在开发或更改网站,在完成编辑之前启用此功能通常是个好主意。它可以很容易地发现并纠正可能会导致数小时烦恼的错误。
答案 1 :(得分:1)
谢谢大家,特别是Spencer Cameron。事实证明我在新函数的声明中忘记了开括号和近括号。 Wordpress在任何内置函数之前读取functions.php,因此它就卡在那里。
当我提交我的代码时,我省略了我的新功能,因为我删除了函数体内的所有内容;什么可能出错?获得的经验......