web-dev-qa-db-ja.com

カスタム投稿の種類/分類法の全カテゴリから最新のx投稿を表示する

WordPressで「ケーススタディ」と呼ばれるカスタム分類法を使用して、すべてのカテゴリから最新のx投稿を表示しようとしています。

すべてのカテゴリ名を見出しリンクとして出力することに成功しました。標準カテゴリ分類から正しいカテゴリに含まれるいくつかの投稿も出力しましたが、私のケーススタディ分類からは表示できません。 'post_type' => 'case-studies'$post_argsクエリに追加しても結果が表示されません。

if (have_posts()) :

    $tax = 'case-studies';

    $cat_args = array(
        'orderby' => 'name',
        'order' => 'ASC'
    );

    $categories = get_terms($tax, $cat_args);

    foreach($categories as $category) {

        echo '<p><a href="' . get_term_link( $category, $tax ) . '" title="' 
            . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' 
            . '>' . $category->name.'</a></p>';

        $post_args = array(
            'posts_per_page' => 10,
            'category_name' => $category->name
        );

        $posts = get_posts($post_args);

        foreach($posts as $post) { ?>
            <a href="<?php echo get_the_permalink(); ?>"><?php echo get_the_title(); ?></a><br/>
        <?php }

        echo '<p><a href="' . get_term_link( $category, $tax ) . '" title="' 
            . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' 
            . '>View all posts in ' . $category->name.'</a></p>';
    }

endif;
1
bigdaveygeorge

カテゴリパラメータは、カスタム分類では機能しません。代わりにtax_queryを使用する必要があります。

現在のコードでは、(を置き換えます。これはいずれの場合も誤って使用されます。category_nameslugではなく、nameを取ります

'category_name' => $category->name

'post_type' => 'case-studies',
'tax_query' => array(
    array(
        'taxonomy' => $tax
        'terms' => $category->term_id,
        'include_children' => false
    )
),
0
Pieter Goosen

このコードは、カスタム投稿タイプtestaismgallery場所分類法のすべてのカテゴリのすべての投稿を表示します。

 $args = array(
        'number'     => $number,
        'hide_empty' => $hide_empty,
        'include'    => $ids
    );

    $custom_categories = get_terms( 'location', $args );

    foreach ( $custom_categories as $catterm){

        $arg = Array( 
        'post_type' => 'testaismgallery',
        'posts_per_page' => '-1',
        'post_status' => 'publish',
        'tax_query' => Array( Array ( 
        'taxonomy' => 'location' ,
        'terms' => $catterm->term_id
        )) );


    $loop = new WP_Query( $arg ); 
    global $post;

    ?>    

    <?php    
    while ( $loop->have_posts() ) : $loop->the_post();
    ?>
      <div class="gallery-content">
    <div class="entry-content">


    <?php 
    $post_id = get_the_ID();
    $abc = get_post_meta($post_id, event_file, true);
     echo "<li><img src='".$abc. "' ></li> "; 

     ?>  

        </div>
    </div>
     <?php endwhile;

    }   

    ?>
0
KD DEVELOPER