@harurui0803

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

WordPressのカスタムテンプレートが読み込まれない

解決したいこと

WordPressのカスタムテンプレート・カスタム投稿タイプについて
カスタムテンプレート(page-$slug.php)が表示されずに、index.phpが表示されてしまいます。
index.phpではなく、page-$slug.phpが表示されるようにしたい。

現状

カスタム投稿タイプを複数作り、それらを各々一覧表示および個別詳細ページを表示させたい。
①page-blog.php(投稿一覧) → single-blog.php(個別詳細ページ)
②page-works.php(投稿一覧) → single-works.php(個別詳細ページ)

※page-$slug.phpの部分が表示されずに、index.phpが表示されてしまいます

※個別詳細ページは表示できています

※固定ページ作成画面内で、テンプレート(blog)を選択することはできているため、
 テンプレートは読み込まれていることが確認できております

※以前はこの設定のまま表示されていたのですが、
 どこもいじることなく急にpage-$slug.phpが読み込まれずにindex.phpが表示されるようになってしまいました

該当するソースコード(page-$slug(blog).php)

<?php

/**
 * Template Name: blog
 */
?>

<!DOCTYPE html>
<html lang="ja">
・
・
・

該当するソースコード(plugin.php)※プラグインにてカスタム投稿タイプを追加

<?php
/**
 * Plugin Name: 
 * Version: 
 * Description: 
 * Author: 
*/

add_action('init', function() {
    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');


    register_post_type('blog', [
        'label' => 'Blog',
        'public' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-welcome-write-blog',
        'supports' => ['thumbnail', 'title', 'editor'],
        'has_archive' => true,
        'show_in_rest' => true,
        'taxonomies' => ['category', 'post_tag']
    ]);
});


自分で試したこと

①パーマリンクの設定を何も変更せずに保存
②WordPressの削除および再インストール(データベースより削除)
 ※削除後に、スラッグ名を「blogs」に変更したことで一度表示されるようにはなったのですが、
  また時間が経つと表示されなくなってしまいました

0 likes

1Answer

はじめまして。

投稿から時間が経っているので、既に解決済みであれば申し訳ございません。

内容を確認して、気になった点をお伝えします。

①page-blog.php(投稿一覧) → single-blog.php(個別詳細ページ)
②page-works.php(投稿一覧) → single-works.php(個別詳細ページ)

こちらですが、私ですとカスタム投稿一覧ページは「archive-$slug.php」で構築します。
一度、「archive-$slug.php」で試してみてはいかがでしょうか?

固定ページとして投稿一覧ページを構築したい場合、
投稿タイプのアーカイブページを無効化を試してみてください。
カスタム投稿タイプのスラッグと固定ページのスラッグが重複していることによる不具合かもしれません。

plugin.php
add_action('init', function() {
    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');


    register_post_type('blog', [
        'label' => 'Blog',
        'public' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-welcome-write-blog',
        'supports' => ['thumbnail', 'title', 'editor'],
        'has_archive' => false, //ここの箇所を無効にする!
        'show_in_rest' => true,
        'taxonomies' => ['category', 'post_tag']
    ]);
});

こちらについては以下が参考になります。
https://my-terrace.com/wordpress_custom_slug/

無事解決することを願っています。

1Like

Comments

  1. @harurui0803

    Questioner

    ご回答いただきありがとうございます。
    またお礼申し上げるのが遅くなってしまい申し訳ありませんでした。

    教えていただきました通り、「archive-$slug.php」で試して解決いたしました!
    本当にありがとうございました。

Your answer might help someone💌