web-dev-qa-db-ja.com

カスタム投稿テンプレートを使用する

特定のカテゴリの下に投稿されたすべての投稿に対してカスタム投稿テンプレートを実装しようとしています。

私はWP-O-Maticプラグインを利用しています。これはRSSフィードをこのカテゴリに入れて、少しカスタマイズしたいと思います。この特定のカテゴリに基づいて提出された投稿のブランドのために。

私はここから以下のコードを見つけました: http://www.nathanrice.net/blog/wordpress-single-post-templates/

しかし、これを自分のfunctions.phpに追加すると、警告が表示されます。

構文解析エラー:構文エラー、予期しないT_LNUMBER、public_html/wp-content/themes/mytheme/functions.php(16)にT_STRINGまたはT_VARIABLEまたは '{'または '$'が必要です:1行目のランタイム作成関数

add_filter( 
    'single_template', 
    create_function(
            '$t', 
            'foreach( (array) get_the_category() as $cat ) 
            { 
                    if ( file_exists(TEMPLATEPATH . "/single-{$cat->1176}.php") ) 
                            return TEMPLATEPATH . "/single-{$cat->1176}.php"; 
            } 
            return $t;' 
    )
);

これを理解する方法についての任意のアイデア。

P.S:WPクエリを実行するための出入り口ページとしてsingle.phpを作成した、別の方法を試してみました。カテゴリIDが一致すればそれはcustom-template.php、そうでなければdefault-template.phpをレンダリングします。

前述のとおり こちら

しかし、私は次のようなエラーが出続けます。

構文解析エラー:構文エラー、予期しないT_LNUMBER、public_html/wp-content/themes/mytheme/functions.php(16)にT_STRINGまたはT_VARIABLEまたは '{'または '$'が必要です:1行目のランタイム作成関数

Warning:call_user_func_array()[function.call-user-func-array]:最初の引数は有効なコールバックであると予想されます、 ''が/public_html/wp-includes/plugin.phpの166行目に与えられています

1
Sledge81

$cat->1176をオブジェクトのプロパティにすることはできません。

PHPマニュアル

有効な変数名は文字またはアンダースコアで始まり、その後に任意の数の文字、数字、またはアンダースコアが続きます。正規表現として、それは次のように表現されます。 '[a-zA-Z_\x7f-\xff] [a-zA-Z0-9_\x7f-\xff] *'

$cat->term_idを使用して、その値と自分が探している番号を比較します。

そして…無名関数を使用しないでください。 APCのようなオペコードキャッシュでそれらをキャッシュすることはできず、デバッグするのは困難です - あなたが見たように。さらに、誰かがこのテーマを子テーマで削除したい場合、それは今とても大変です。

1
fuxia