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

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

ただいまの
回答率

90.23%

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 147

affilix

score 7

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

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

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に記述して解決する事は可能でしょうか。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • affilix

    2019/04/02 11:12

    早々にありがとうございます。

    テンプレートは賢威8という有料テンプレートです。 有料なのでデモへのURLも会員しか入れないので記載が出来ません。 現在こちらで公開できるようあたらしくテンプレートを反映させたURLを作成しています。 

    サポート外というのはテンプレートのカスタムでは無く、WPのカスタムになるのでサポート外という事でしたがこちらをご案内していただきました。
    https://teratail.com/questions/89903
    やりたい事は全く同じでしたが、カスタム投稿を使っておらず、またcat.phpでもないので同じ環境では無い為上手く行きませんでした。

    キャンセル

  • m.ts10806

    2019/04/02 11:16

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

    キャンセル

  • affilix

    2019/04/02 11:32

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

    キャンセル

回答 2

checkベストアンサー

+2

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

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

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

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

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/02 12:20 編集

    marlboro_tata さん。ありがとうございます。

    --

    関数リファレンス/WP_Query をよめば、記載されているので、省略したのですが...

    WordPress では、標準のカテゴリーも category という名前の「タクソノミー」の1種として扱われていますので、最初から用意されている標準のカテゴリーを使うのであれば、`is_tax( 'sample_cat' )` は、`is_tax( 'category' )` にすれば良いと思います。
    また、カテゴリーアーカイブを使うのであれば、カテゴリーページ判別用の `is_category()` でも大丈夫と思います。

    キャンセル

  • 2019/04/02 12:43

    marlboro_tata様
    CHERRY様

    ご丁寧にありがとうございました。 

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

    ありがとうございました。

    キャンセル

  • 2019/04/02 13:16

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

    キャンセル

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にするとエラーになるのでそのまま)

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる