サポート » 使い方全般 » single-投稿タイプを指定するには

  • 解決済 toshiDP

    (@toshidp)


    1)ダッシュボードで投稿を作成した場合、特定のテンプレートで表示したいのですがどのようにすればよろしいのでしょうか?固定ページなどではスラグ名を指定すればpage-スラッグ名.phpのデザインで表示されますが、投稿でもダッシュボード内の簡単な指定はデフォルトの状態でできますか?デフォルトで無理な場合はプライグインなどを使用するのでしょうか?

    例)テスト記事をsingle-4.phpで表示したいのですが、single.phpのデザインで表示される。

    2)複数の固定ページを特定のpage-スラグ名.phpファイルで表示する方法と、複数の投稿ページを特定のsingle-投稿タイプ.phpで表示する方法を教えてください。
    可能であればfunction.phpなどは操作しないでダッシュボード内で指定することは可能でしょうか?

    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • カテゴリーで振り分けるとか、では?

    トピック投稿者 toshiDP

    (@toshidp)

    ありがとうございます。
    カテゴリーを指定することで振り分けて表示することが来できました。

    またsingle-4.phpでは4=カテゴリーIDですが、single-itemなどのようにカテゴリーのスラッグ名を指定して振り分けることができませんでしたが、スラッグ名で振り分けも可能ですか?

    よく理解できていないのですが、single-[投稿タイプ]と本には書かれていますが、投稿タイプのところには対象カテゴリーのID、スラッグ名でよいのでしょうか?

    ————————–

    投稿については複数の投稿ページに同デザインテンプレートを適用できることはわかりましたが、固定ページの場合はどのようにすれば適用できるのでしょうか?

    toshiDPさん

    カスタム投稿タイプのタイプ別に分けたいという意味合いで大丈夫でしょうか。
    functions.phpなどで変更かけていなければ、基本的にはsingle-(投稿タイプのslug).phpが優先されると思います。

    例えば、カスタム投稿タイプのslugが「test」だとすると
    single-test.phpになります。

    その他、single.php内で他のPHPにも降ることが可能ですよ。

    トピック投稿者 toshiDP

    (@toshidp)

    ご回答ありがとうございます。

    ————————–

    function.phpで指定する方法になってしまうのですね。

    single(投稿)については複数の記事に同デザインテンプレートを指定する方法については理解できました。

    ————————–

    上記singleのように、複数の固定ページで指定したテンプレートを適用させることはやはりむりなのでしょうか?

    page-test.phpとpage-test1.phpのテンプレートを作成し、固定ページ作成時のスラッグをtestにした場合は前者が適用されますが、これですとテンプレート1に対し固定ページ1となってしまいます。テンプレート1に対し固定ページ複数に適用させる方法などはありますか?

    toshiDPさん

    おそらく、テンプレート階層を参考にすると良いかと思いますよ。

    複数に指定のテンプレートを反映させるには2つのやり方があると思われます。
    テンプレートファイルの頭に

    <?php
    /*
    Template Name: マイページ
    */
    ?>

    をつけ、雛形化するか(下記優先順位1が適応になります)、IF文による条件分岐です。

    以下がワードプレスの優先順位になりますので
    1.カスタムテンプレートファイル – ページ作成画面の「テンプレート」ドロップダウンメニューで選択したテンプレート名(上記)
    2.page-{slug}.php
    3.page-{id}.php – 固定ページIDが 6 ならば WordPress は page-6.php を探す。
    4.page.php
    5.singular.php
    6.index.php

    IF文を使う場合は、

    <?php
    if(条件) :
    include(TEMPLATEPATH.'/page-test.php');
    elseif(条件2) :
    include(TEMPLATEPATH.'/page-test2.php');
    else :
    include(TEMPLATEPATH.'/page-def.php');//汎用のテンプレート
    endif;
    ?>

    こんな感じで組めば、分岐できますよ。

    toshiDPさん

    上記IF文を使用する場合、page.phpのコピーをpage-def.phpとし、page.phpには上記iF文のみを記載すると良いかもしれません。

    slugと重複の恐れがある場合は、page_def.phpなどファイル名を変更してください。

    無難なのは、固定ページの場合はテンプレートを適応させるのが良いと思います。

    トピック投稿者 toshiDP

    (@toshidp)

    丁寧な説明ありがとうございます。
    上記の説明で十分に質問内容に対しての回答になりました。

    追加で教えていただけると助かるのですが、

    テンプレートを適応とありますが、テンプレートを選択する画面がない場合はどうすれば表示するのでしょうか?
    当方の認識ですと、「ダッシュボード」内の「ページ属性」に表示されると思っています。

    また、テンプレートファイルの作り方などあるのでしょうか?

    出先で携帯から失礼致します。

    通常固定ページから新規作成で表示が出てくるのですが、ファンクションによって無効化されているか、phpファイルに記載が無いか、隠れている可能性があります。

    通常はテンプレートネームをphpファイルの先頭行に設置するだけで、選択が出てくるのですが。

    トピック投稿者 toshiDP

    (@toshidp)

    確認できました。

    phpファイルの記述が間違っていました。

    何度も丁寧な回答ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「single-投稿タイプを指定するには」には新たに返信することはできません。