0

些細なことだと思っていたことの正しい答えを見つけることができないようです。

このようにいくつかのカテゴリが配置されています...

親カテゴリー 1
- 子カテゴリー 1
- 子カテゴリー 2
- 子カテゴリー 3

...そして、子カテゴリ 2 の投稿がいくつかあります。自分が現在属しているカテゴリのすべての投稿をページに表示したいと考えています。

これは私が今していることです:

<?php
query_posts('cat=2&showposts=10');
    if (have_posts()) : while (have_posts()) : the_post(); ?>      
    <div class="timeline">
    <h3><?php the_title(); ?></h3>
    <?php the_content();?>
    <?php endwhile; else: ?>
    <?php _e('No Posts Sorry.'); ?>
    <?php endif; ?>
</div>

ご覧のとおり、カテゴリ (cat=2) を手動で指定する必要がありますが、代わりに、既に参加しているカテゴリを自動的に検出して投稿を表示するようにします (別のカテゴリにいる場合は、そのように表示されます)。それらの投稿)。

助言がありますか?

前もって感謝します。(SO コミュニティ = 素晴らしいソース)。

4

6 に答える 6

10

以下のコードを試してください:

<?php
$current_cat_id  = get_query_var('cat');
$showposts = 10;
$args = array('cat' => $current_cat_id, 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => $showposts,'post_status' => 'publish');
query_posts($args);
    if (have_posts()) : while (have_posts()) : the_post(); ?>      
    <div class="timeline">
    <h3><?php the_title(); ?></h3>
    <?php the_content();?>
    <?php endwhile; else: ?>
    <?php _e('No Posts Sorry.'); ?>
    <?php endif; ?>
</div>
于 2012-07-02T13:19:13.130 に答える
2

を使用している場合はcategory.php、を省略できquery_posts、投稿が自動的に入力されます。

于 2012-07-02T03:12:12.020 に答える
1
    <?php
    // Start the loop.
    $categories = get_categories('child_of=1');//Parents category id
                        foreach ($categories as $cat) {

                            $option = '<a href="/category/archives/'.$cat->category_nicename.'">';
                            $option .= $cat->cat_name;//parents sub category name
                            $option .= '</a>';
                            echo $option;
                            query_posts('cat=$cat->cat_ID&showposts=10');
if (have_posts()) : while (have_posts()) : the_post(); ?>      

<h3><?php the_title(); ?></h3>
<?php the_content();?>
<?php endwhile; else: ?>
<?php _e('No Posts Sorry.'); ?>
<?php endif;  }?>
于 2016-04-06T06:14:33.693 に答える
0

これを試してみてください。これはこれに対するより良い解決策であり、カテゴリ ID で関連投稿を表示するためにも使用できます...

この行を使用して、下記の関数を呼び出すだけです。これをテンプレートまたは page.php/single.php ファイルに入れます。

次の行を入力して呼び出します。related_post_title('enter cat id here..');

ここに関数があり、これをfunction.phpファイルに入れます。

関連投稿機能:

function related_post_title($cat_id){

    $cat = $cat_id;

    // Check if it is page only
    if ( is_page() || is_single()) {
        $args=array(
            'cat'  =>  $cat,
            'order'  =>  DESC,
            'orderby'  =>  rand,
            'post__not_in'  =>  array($post->ID),
            'posts_per_page'  =>  9999,
            'caller_get_posts'  =>  1
            );

        $my_query = null;

        $my_query = new WP_Query($args);

        if( $my_query->have_posts() ) {

            echo  ' <ul> ';

            while ($my_query->have_posts()) : $my_query->the_post(); ?>

                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

            <?php

            endwhile;

            echo '</ul>';
        }
        wp_reset_query();
    }
}

ご不明な点がございましたら、お気軽にお問い合わせください...

于 2014-11-11T13:20:08.613 に答える
0

試す

$args = array( 'posts_per_page' => 5, 'offset'=> 0, 'cat' => 1 );
于 2014-05-06T13:03:36.273 に答える
0
<ul>
<?php
global $post;

$args = array( 'posts_per_page' => 5, 'offset'=> 0, 'category' => 1 );
// 1 is a cat id.
// 

$myposts = get_posts( $args );

foreach( $myposts as $post ) : setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>

</ul>
于 2013-07-18T06:39:31.563 に答える