なぜこれがうまくいかないのかわかりません。私はカスタムページテンプレートpage-politics.phpを持っています。このページは次のようになります。
しかしそれを表示しています:
正しいテンプレートが正しいページに割り当てられていることを確認します。
これは答えではなく、より多くの種類のトラブルシューティングの助けになります...この関数をプロジェクト(おそらくfunctions.php
)に追加してから、テーマ内のすべてのテンプレートファイルの先頭から呼び出します。
/**
* Outputs the name of the file as an HTML comment for easy-peesy troubleshooting.
*
* @param string $file This function should always be passed the value of __FILE__
*/
function output_file_marker( $file )
{
// Strip out system path (keeping only site-root-relative path)
$file = preg_replace( '|' . preg_quote( ABSPATH ) . '|', '', $file );
// Output an HTML comment with the current template path
printf( "\n\n<!-- ".__( 'Template file: %s', 'nvLangScope' )." -->\n\n", '/'.$file );
}
これは各テンプレートの始めにHTMLコメントを出力することによってどのテンプレートファイルがロードされているかを識別するのを助け、あなたが奇妙な「間違ったテンプレート」問題の多くを解決するのを助けることができます。
第二に、これを試してください...
[ページ属性]> [テンプレート]を[デフォルト]に設定し、スラッグではなくページ番号に従ってテンプレートファイルの名前を変更します(念のため、テンプレート名を削除することもできます)。たとえば、問題のページの投稿IDが103の場合、テンプレートファイルの名前をpage-103.php
にします。
テンプレートを管理者が選択可能な上書きテンプレートとして保持したい場合は、別の命名規則を使用してください。テンプレートを管理者が選択できるようにする必要がある場合はoverride-description.php
を使用します。
最後に、すべてのプラグインが無効になっていることを確認してください。プラグインをオーバーライドすることでテンプレートを台無しにすることができます...これは特定のeコマースパッケージに特に当てはまります。
そのページに表示されているものがあなたの投稿であるかどうかはわかりませんが、そのページが[閲覧]タブの[投稿]ページとして設定されているかどうかを確認する必要があります。これが設定されていると、テンプレートをオーバーライドしてテンプレートの代わりにindex.phpをロードするだけです。
頑張って!
'slugは' politics '('rewrite' => array('slug' => 'politics')
)というカスタム投稿タイプを登録したかどうかを確認してください。自分のページと同じスラッグを持つカスタム投稿タイプを使用している場合、WordPressはメニュー内のページではなくcptのアーカイブページを表示する可能性があります。あなたがcptのアーカイブを必要としない場合は、このカスタム投稿タイプに'has_archive' => false
を設定することができます。
書き換えルールを変更した後は、パーマリンクをフラッシュしてください。
私のローカルインストールであなたのページをテストしました、それはうまく働きますが、デバッグモードでページにエラーがあります。ここにあなたのエラーがありますので、多分あなたもここから作業することができます
Warning:number_format()は、パラメータ1がdoubleであることを想定しています。文字列は、39行目のC:\ xampp\htdocs\wordpress\wp-content\themes\tema2014\page-test.phpです
テーマの設計に忙しいときは、wp-config.phpでデバッグをtrueに設定してください。これは本当にエラーを直すのに非常に役立ちます