私は このチュートリアル カスタム投稿タイプ(プラグイン内)について作者がやり方を説明していますカスタム投稿タイプ専用のテンプレートの使用を強制する。著者はこう述べている:
以下のコードは、現在のテーマディレクトリでテンプレート
single-movie-reviews.php
を検索します。見つからない場合は、テンプレートのプラグインディレクトリを調べます。これは、プラグインの一部として提供されています。 template_includeフックはデフォルトの振る舞いを変更し特定のテンプレートを強制するために使われました。
ステップ1:このコードを私のplugin-name.php
ファイルに追加しました
add_filter( 'template_include', 'include_reviews_template', 1 );
function include_reviews_template(){
if ( get_post_type() == 'reviews' ) {
if ( is_single() ) {
// checks if the file exists in the theme first,
// otherwise serve the file from the plugin
if ( $theme_file = locate_template( array( 'single-movie-reviews.php' ) ) ) {
$template_path = $theme_file;
} else {
$template_path = plugin_dir_path( __FILE__ ) . '/templates/single-movie-reviews.php';
}
}
}
return $template_path;
}
ステップ2:single- {custom-post-type} .phpファイルを作成してください。
次に、必要なsingle-movie-reviews.php
ファイルを作成し、それを'/my-plugin/templates/'
ディレクトリに追加しました。
作者は以下を付け加えます:
注:新しいページを作成する必要がありますダッシュボードから新しく作成したテンプレートを使用してください。
問題
だから私は何を間違っているのですか?
お知らせ下さい
この行を変更してください。
function include_reviews_template(){
これに:
function include_reviews_template( $template_path ) {
get_post_type() == 'reviews'
がfalseのときは、未設定の変数($template_path
)を返しています。この変更はWordPressによって関数に渡された値を送るべきです。