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

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

ただいまの
回答率

90.11%

カスタム投稿ポストのタームに所属する全てのスラッグを抽出したい

解決済

回答 1

投稿 編集

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

marcos_grohl

score 7

いつもお世話になってます。

カスタム投稿ポストのターム(news_tag)に含まれる
全てのスラッグを対象に最新記事一覧を表示させたいのですが、
個別のスラッグやarrayでの複数スラッグは対応出来たのですが、
スラッグが全部で100以上あるので、タームを指定して
全てのスラッグを抽出できるような設定に変更したいです。

以下は現在設定中の表示用タグで、動作確認はOKです。

<?php
                        $args = array(
                        'post_type' => 'news',
                        'post_parent' => 0,
                        'tax_query' => array(
                    array(
                    'taxonomy' => 'news_tag',
                    'field' => 'slug',
                        'terms' => 'ここを個別でなく、ターム(news_tag)全体を対象にしたい',
                    ),
                ),
                        "posts_per_page" => 3
                        );
                        $the_query = new WP_Query($args); if($the_query->have_posts()):
                    ?>
                    <?php while ($the_query->have_posts()): $the_query->the_post(); ?>

また、function.phpに記載している内容は
以下になります。

/*news*/
add_action( 'init', 'news' );
function news() {
  global $current_user;
get_currentuserinfo();
if ($current_user->ID == "1" ) {
  $flag = true;
}else{
  $flag = false;
}
  register_post_type( 'news',
    array(
      'labels' => array(
        'name' => __( 'ブログ' ),
        'singular_name' => __( 'news' )
      ),
      'public' => true,
      'show_ui' => $flag,
      'supports' => array( 'title', 'editor', 'comments', 'thumbnail' ),
      'menu_position' =>3,
      'has_archive' => true
    )
  );

//カスタムタクソノミー、タグタイプ
  register_taxonomy(
    'news_tag', 
    'news', 
    array(
      'hierarchical' => false, 
      'update_count_callback' => '_update_post_term_count',
      'label' => 'ブログのタグ',
      'singular_label' => 'ブログのタグ',
      'public' => true,
      'show_ui' => true
    )
  );

}

function get_current_term(){

    $id;
    $tax_slug;

    if(is_category()){
        $tax_slug = "category";
        $id = get_query_var('cat');    
    }else if(is_tag()){
        $tax_slug = "post_tag";
        $id = get_query_var('tag_id');    
    }else if(is_tax()){
        $tax_slug = get_query_var('taxonomy');    
        $term_slug = get_query_var('term');    
        $term = get_term_by("slug",$term_slug,$tax_slug);
        $id = $term->term_id;
    }

    return get_term($id,$tax_slug);
}

ぜひお力添えを頂けますと幸いです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • kunai

    2018/12/05 12:30

    WordPressタグをつけると識者が寄ってくると思います

    キャンセル

  • marcos_grohl

    2018/12/05 12:58

    アドバイスありがとうございます!

    キャンセル

回答 1

checkベストアンサー

+2

            'field'    => 'term_id',
            'terms'    => [0],
            'operator' => 'NOT IN',


かな

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/12/05 14:03

    理想通り動作しました!ありがとうございます!

    キャンセル

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

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