サポート » 使い方全般 » archive-[カスタム投稿名].phpがあるのに、home.phpが呼び出される

  • 解決済 spicablue

    (@spicablue)


    カスタム投稿へのリンク先がhome.phpになるとの重複投稿失礼致します。

    archive-[カスタム投稿名].phpのテンプレートをサーバに置いているにもかかわらず
    home.phpが使用されます。

    昨日投稿時には「news」というカスタム投稿だけ
    「http://サイト名.co.jp/news/」にアクセスした際にhome.phpが呼び出されたのですが、

    今日は他の2つのカスタム投稿「gallery」「calendar」も、home.phpが
    使われるようになってしまいました。
    それぞれ、「archive-gallery.php」「archive-calendar.php」がサーバにあります。

    本日、新しいプラグインを追加したので、それらを停止してみたのですが
    変化ありません。

    以下、設定です。

    ▼一般設定
    パーマリンク設定:投稿名
    フロントページ設定:最新の投稿

    ▼プラグイン「CPT UI」で作成したカスタム投稿の設定
    カスタム投稿名:news、gallery、calendar
    has_archive : 全て true
    has_archive以外は全てデフォルトです。

    WordPressサイトはいくつか作っており
    カスタム投稿やテンプレートも、基本的に同じ作り方なので
    何が間違っているのか想像できず。。
    何卒よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 spicablue

    (@spicablue)

    (追記)
    header.phpの<head>内に、
    表示内容による条件分岐で読み込むCSSなどを以下のような記述で振り分けています。

    <?php if ( is_front_page() == true ): ?>
    <link type=”text/css” rel=”stylesheet” href=”<?php echo get_template_directory_uri(); ?>/css/home.css” media=”screen,print”>
    <?php elseif( is_archive()||is_single()||is_tax() ): ?>
    <link type=”text/css” rel=”stylesheet” href=”<?php echo get_template_directory_uri(); ?>/css/<?php echo esc_html(get_post_type_object(get_post_type())->name); ?>.css” media=”screen,print”>
    <?php endif; ?>

    昨日まではこれで [カスタム投稿名].css が読み込まれていましたが、
    今はhttp://サイト名.co.jp/[カスタム投稿名]/にアクセスしても
    home用のCSSが読み込まれています。

    固定ページはhttp://サイト名.co.jp/[固定ページスラッグ]/
    問題なく表示されます。

    また、if ( is_post_type_archive() )ではfalseが返ってきているようです。

    トピック投稿者 spicablue

    (@spicablue)

    自己解決いたしました。

    functions.php

    function create_post_type() {
    register_post_type( ‘news’, array(
    ‘label’ => ‘お知らせ’,
    ‘public’ => true,
    ‘menu_position’ => 5,
    ‘menu_icon’ => ‘dashicons-format-aside’
    ));
    register_post_type( ‘gallery’, array(
    ‘label’ => ‘写真館’,
    ‘public’ => true,
    ‘menu_position’ => 5,
    ‘menu_icon’ => ‘dashicons-images-alt2’
    ));
    register_post_type( ‘calendar’, array(
    ‘label’ => ‘カレンダー’,
    ‘public’ => true,
    ‘menu_position’ => 5,
    ‘menu_icon’ => ‘dashicons-calendar-alt’
    ));
    }
    add_action( ‘init’, ‘create_post_type’ );

    管理画面で、カスタム投稿のアイコン(pin)を別のアイコンに変えるように入れていたコードです。
    これを削除したら、無事アーカイブが表示されました。

    いつも「CPT UI」(旧 custom post type UI)で作成しており
    コードでカスタム投稿を作ったことがないのですが、
    似たような記述に感じたので、競合したのかもしれません。

    お騒がせいたしました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「archive-[カスタム投稿名].phpがあるのに、home.phpが呼び出される」には新たに返信することはできません。