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

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

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

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

Q&A

解決済

2回答

1299閲覧

WPカテゴリー一覧で親カテゴリーだけ表示させたい(jsカスタム?)

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

0グッド

0クリップ

投稿2019/04/02 01:20

編集2019/04/02 02:32

カテゴリー一覧で親カテゴリーだけ表示させたい

※ほぼ同じ内容の質問がありましたが、カスタム投稿を使っていらして解決しなかったのでご質問させて下さい。

WPのカテゴリー一覧で、親カテゴリーに属した記事だけでなく、子カテゴリーに属した記事も一覧表示されてしまうのがデフォルトなので、これを親カテゴリーに属した記事だけ表示するようにしたいです。

〇WPのテンプレートを使っていますが、WPの仕様なのでサポート外との事でした。
〇カテゴリー一覧を表示させるphpを探した所、
jsフォルダの、
category_contents.js
primary_category.js
のどちらかをいじればよいのかと思いますが分かりませんでした。 

※追記
それか、
archive.php
でしょうか。
<?php if( is_category() || is_tag() ): ?>
<?php $term_id = get_queried_object(); if ( is_object( $term_id ) ) { $term_id = $term_id->term_id; } ?>
この記載があります。

親テーマと子テーマがあり、子テーマのfunction.phpに記述して解決する事は可能でしょうか。

やりたい事はシンプルで簡単そうなので色々調べましたが、記事内や、サイドバーに表示させる方法はすぐに見つかりますが、どうしてもこちらが解決しません。

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

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

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

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

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

CHERRY

2019/04/02 01:53 編集

> category_contents.js > primary_category.js があるということは、WordPress のデフォルトテーマではありませんね。 テーマファイルに依存している書き方の可能性がありますので、テーマ名とテーマ(配布先 or デモサイト)のURL を記載していただけないでしょうか。 また、参考にしたサイト等がある場合は、URL を記載してください。
yoorwm

2019/04/02 01:55

「WPの仕様なのでサポート外との事でした」というのは、仕様なので出来ません、という事とは違うのでしょうか? 出来ない事を無理やりやろうとしていますか?
退会済みユーザー

退会済みユーザー

2019/04/02 02:12

早々にありがとうございます。 テンプレートは賢威8という有料テンプレートです。 有料なのでデモへのURLも会員しか入れないので記載が出来ません。 現在こちらで公開できるようあたらしくテンプレートを反映させたURLを作成しています。  サポート外というのはテンプレートのカスタムでは無く、WPのカスタムになるのでサポート外という事でしたがこちらをご案内していただきました。 https://teratail.com/questions/89903 やりたい事は全く同じでしたが、カスタム投稿を使っておらず、またcat.phpでもないので同じ環境では無い為上手く行きませんでした。
m.ts10806

2019/04/02 02:16

JavaとJavaScriptは全く別物なので、タグは正しく設定してください。あと「WordPress」をタグに設定してください
退会済みユーザー

退会済みユーザー

2019/04/02 02:32

ご指摘ありがとうございます 「WordPress」タグに変更しました。
guest

回答2

0

ベストアンサー

【WP】子・孫は非表示、親カテゴリの記事のみ表示するには

で、カスタム投稿タイプになっているのが問題なのですね?

そうであれば、普通の投稿記事の 'post_type' は 'post' です。
'post_type' を省略した場合の初期値も 'post' です。

で、解決できるでしょうか?

(参考)
アクションフック一覧/pre_get_posts関数リファレンス/WP_Query を参照。

投稿タイプのパラメータ
post_type (文字列 / 配列) - 投稿を[[投稿タイプ]によって取得する。デフォルト値は 'post'。'tax_query' がクエリーにセットされている場合、デフォルト値は 'any' になります。
'post' - 投稿。

投稿2019/04/02 02:42

編集2019/04/02 02:43
CHERRY

総合スコア25171

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

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

退会済みユーザー

退会済みユーザー

2019/04/02 02:53

ご丁寧にありがとうございます。 ソース内の、post_type という個所があったのでこちらはpostに直してみます。 参考サイトだと、 >カスタム投稿のスラッグがsampleで、タクソノミーのスラッグがsample_catとして、 とあり、ソース内にある「sample」 「sample_cat」を差し替えなくてはならないのですが、当方は、デフォルトの投稿とカテゴリーを作成しているだけなので、カスタム投稿のスラッグ等がなくどう差し替えてよいのか、削除すればよいのかという点が分からない点でした。  ~参考になりそうな回答~ カスタム投稿のスラッグがsampleで、タクソノミーのスラッグがsample_catとして、 以下をfunctions.phpに加えてみてください。 function query_at_sample( $query ) { if( is_admin() || ! $query->is_main_query() ) return; if( $query->is_tax( 'sample_cat' ) ) { global $post; $terms = get_queried_object()->slug; $query -> set( 'post_type', 'sample' ); $query -> set( 'tax_query', array( array( 'taxonomy' => 'sample_cat', 'field' => 'slug', 'terms' => $terms, 'include_children' => false )) ); } } add_action( 'pre_get_posts', 'query_at_sample' );
marlboro_tata

2019/04/02 03:12

横合いから失礼致します。デフォルトの投稿は「post」、カテゴリーは「category」となるのがきまりなので、「カスタム投稿のスラッグがsampleで」の部分をpost に、「タクソノミーのスラッグがsample_catと」の部分を category とするよといかと思います。
CHERRY

2019/04/02 03:27 編集

marlboro_tata さん。ありがとうございます。 -- 関数リファレンス/WP_Query をよめば、記載されているので、省略したのですが... WordPress では、標準のカテゴリーも category という名前の「タクソノミー」の1種として扱われていますので、最初から用意されている標準のカテゴリーを使うのであれば、`is_tax( 'sample_cat' )` は、`is_tax( 'category' )` にすれば良いと思います。 また、カテゴリーアーカイブを使うのであれば、カテゴリーページ判別用の `is_category()` でも大丈夫と思います。
退会済みユーザー

退会済みユーザー

2019/04/02 03:43

marlboro_tata様 CHERRY様 ご丁寧にありがとうございました。  上記ソースコードのsample sample_cat を変更して貼り付けるだけでは解決しなかったのですが、知識不足の面でご迷惑をおかけしてしまいそうなので、いただいた情報を頼りに引き続き頑張ってみようと思います。 ありがとうございました。
marlboro_tata

2019/04/02 04:16

書き換えてみたコードを質問に追記するとまた新たなアドバイスがもらえる可能性がると思います。
guest

0

別の質問であった、

カスタム投稿のスラッグがsampleで、タクソノミーのスラッグがsample_catとして、
以下をfunctions.phpに加えてみてください。

※私の場合は、カスタム投稿を使っていないので
sample→postに変換
sample_cat→categoryに変換

function query_at_sample( $query ) { if( is_admin() || ! $query->is_main_query() ) return; if( $query->is_tax( 'category' ) ) { global $post; $terms = get_queried_object()->slug; $query -> set( 'post_type', 'post' ); $query -> set( 'tax_query', array( array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => $terms, 'include_children' => false )) ); } } add_action( 'pre_get_posts', 'query_at_sample' );

コチラをfunction.phpに書きましたが、特に変化がありませんでした。

(query_at_sample は、どう書き換えればよいか分からず、sampleだけをpostにするとエラーになるのでそのまま)

色々当たり前の事が分かっておらず申し訳ないのでこの情報をヒントに自己解決へ努力しようと思いますが、すぐに解決できるようでしたらご指摘いただければ幸いです。

投稿2019/04/02 04:51

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問