0

这个问题快把我逼疯了。

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

2 回答 2

2

当您遇到 500 级错误、空白屏幕或任何其他奇怪或意外行为时,要查找WordPressWP_DEBUG中问题的原因,请在wp-config.php.

像这样:

define( 'WP_DEBUG', true );

如果您正在开发或更改站点,通常最好在完成编辑之前启用此功能。它可以很容易地发现和纠正可能会困扰数小时的错误。

于 2013-05-28T21:22:00.127 回答
1

谢谢大家,尤其是斯宾塞·卡梅隆。原来我忘记了新函数声明中的左括号和右括号。Wordpress 在任何内置函数之前读取functions.php,所以它就卡在那里了。

当我提交我的代码时,我遗漏了我的新函数,因为我已经从函数体中删除了所有内容;会出什么问题?学过的知识...

于 2013-05-29T14:39:09.047 回答