Wordpress:functions.php打破标准WP功能

时间:2013-05-28 20:42:41

标签: wordpress wordpress-theming

这个问题让我发疯。

今天早上,我正在创建的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 );
?>

2 个答案:

答案 0 :(得分:2)

要在出现500级错误,空白屏幕或任何其他奇怪或意外行为时在 WordPress 中查找问题原因,请在{{1>中定义WP_DEBUG常量}}

喜欢这样:

wp-config.php

如果您正在开发或更改网站,在完成编辑之前启用此功能通常是个好主意。它可以很容易地发现并纠正可能会导致数小时烦恼的错误。

答案 1 :(得分:1)

谢谢大家,特别是Spencer Cameron。事实证明我在新函数的声明中忘记了开括号和近括号。 Wordpress在任何内置函数之前读取functions.php,因此它就卡在那里。

当我提交我的代码时,我省略了我的新功能,因为我删除了函数体内的所有内容;什么可能出错?获得的经验......