質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

871閲覧

【wordpress】カスタム投稿タイプのカテゴリについて

KyokoKawamoto

総合スコア14

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/10/18 03:59

編集2018/10/19 07:56

###質問
プラグイン「Custom Post Type UI」を使ってカスタム投稿タイプで記事を作成したのですが、
カテゴリ一覧やカテゴリ検索がうまく作動しないようです。

カスタムタクソノミーを作って各アーカイブページを手動で作るしか方法はないのでしょうか?

###達成したいこと

  1. カテゴリリストをサイドバーに設置
  2. シングルページ下部にあるカテゴリのテキストリンクから、カテゴリごとの記事一覧ぺージへ飛ばしたい

###現状
サードバーにカテゴリリストを表示することはできたが、リンク先に記事が無いと表示される

PHP

1<div class="side-title"><span>カテゴリ一覧</span></div> 2 <ul> 3    <?php wp_list_categories('title_li=&depth=1'); ?> 4 </ul>

PHP

1 2function change_posts_per_page($query) { 3if ( is_admin() || ! $query->is_main_query() ){ 4 return; 5 } 6 7 /* カテゴリーページ カスタム投稿を含める */ 8 if ( $query->is_category() ) { 9 $query->set( 'post_type',array('post','blog' )); 10 return; 11 } 12 /* 検索一覧ページ カスタム投稿を含める */ 13 if( $query->is_search() ){ 14 $query->set( 'post_type',array( 'post','blog' )); 15 return; 16 } 17} 18add_action( 'pre_get_posts', 'change_posts_per_page' ); 19

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

wp_list_categories には 'post_type' というオプションがありません。
そもそも、特定taxonomyのリストを出力することを目的とした関数なので、post_typeは関係が無いのです。

【wp_list_categories – WordPress私的マニュアル】
https://elearn.jp/wpman/function/wp_list_categories.html

【wp_list_categories() | Function | WordPress Developer Resources】
https://developer.wordpress.org/reference/functions/wp_list_categories/


たぶん、デフォルトにあるカテゴリを利用する設定にしているのだろうと推測します。
pre_get_postsでis_categoryの場合に、post_typeに当該カスタム投稿タイプのスラッグを追加してください。

投稿2018/10/18 07:43

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KyokoKawamoto

2018/10/19 07:57 編集

ご回答ありがとうございます。 おっしゃる通り、既存の投稿ページで利用しているカテゴリをカスタム投稿ページでも利用できる設定にしています。(タグも同じく) 上記追記した2つ目のコード(function.php)のように記述したのですが、カスタム投稿のページが対象にされず表示されません。他に考えられる原因はありますか? サイドバーのPHPは上記のように書き換えました。 ちなみに/category/未分類/は表示されず、/blog/category/未分類/では表示されました。
kei344

2018/10/20 03:40

すみませんが、ちょっと状況がわかりません。パーマリンクの設定やCPT-UIの設定でもURLが変わりますが、/blog/category/未分類/で表示できているというのが不思議です。 ちなみに「各アーカイブページを手動で作る」とはどのような作業を指しておられるのでしょうか。
KyokoKawamoto

2018/10/22 03:56 編集

投稿タイプスラッグを「blog」で作成しています。/blog/category/未分類/のURLで表示されるページは、カスタム投稿で作成した「未分類」カテゴリ記事の一覧です。 <?php wp_list_categories('title_li=&depth=1'); ?>で呼び出されるのは/category/未分類/なのでカスタム投稿の記事は表示されませんでした。 達成したいことは、カテゴリリストやカテゴリのリンクから、通常の投稿とカスタム投稿を合わせた各カテゴリ記事一覧ページを表示することです。 「各アーカイブページを手動で作る」は各カテゴリのアーカイブページを作り、カテゴリリストは<?php wp_list_categories(); ?>を使わず手作業で対応するURLを付ける。という意味でした。実現可能性もわからないままの発言でしたのでこちらは無視してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問