0

この問題は私を夢中にさせています。

今朝、私が作成している Wordpress テーマには非常に単純な functions.php ファイルが含まれており、私のサイトは適切に機能しました。今日、私はカテゴリを反復処理して特定の投稿を一覧表示する新しい関数を作成しました。それが functions.php に加えた唯一の変更です。

修正した関数ファイルをサーバーにアップロードした後、サイトにアクセスするたびに 500 エラーが発生します。私は、「OK、私の新しい関数は何かを壊しました。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

1

皆さん、特にスペンサー・キャメロンに感謝します。新しい関数の宣言で開き括弧と閉じ括弧を忘れていたことがわかりました。Wordpress は組み込み関数の前に functions.php を読み取るため、そこでスタックしてしまいます。

コードを送信したとき、関数の本体からすべてを削除したため、新しい関数を省略しました。何がうまくいかないのでしょうか?学んだ教訓...

于 2013-05-29T14:39:09.047 に答える