[英]PHP code to display all posts based on category
我希望在我的wordpress主頁index.php中插入一行代碼,以顯示除“日記”類別中的帖子以外的所有其他帖子。
原始代碼行如下
<?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>
<div <?php post_class(); ?>>
<span class="postlabel"><a href="<?php the_permalink() ?>"><span><?php the_time('d'); ?></span><?php the_time('M'); ?></a></span>
<h2 class="post-title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p class="info">
<span class="catinfo"><?php _e('Filed in ', 'Mflat');?><?php the_category(' | ') ?></span>
<span class="cmtinfo"><?php comments_popup_link( __( 'Leave a comment', 'Mflat' ), __( '1 Comment', 'Mflat' ), __( '% Comments', 'Mflat' ) ); ?><?php edit_post_link(' Edit', ' | ', ''); ?></span>
</p>
<div class="entry">
<?php $Mflat_options = get_option('Mflat_theme_options'); ?>
<?php if ( $Mflat_options['home_excerpt_check']== 1 ) { the_excerpt(__('» Read more','Mflat')); } else {the_content(__('Continue Reading','Mflat'));} ?>
</div>
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<p class="infobottom">
<?php if(function_exists('the_views')): ?><span class="count"><?php the_views(); ?></span><?php endif; ?>
<?php if (has_tag()): ?><span class="tags"><?php the_tags(' '); ?></span><?php endif; ?>
</p>
</div>
<?php endwhile; ?>
<div class="flip">
<div class="prevpost"><?php next_posts_link(__('Older Entries', 'Mflat')) ?></div>
<div class="nextpost"><?php previous_posts_link(__('Newer Entries', 'Mflat')) ?></div>
</div>
<?php else : ?>
<div id="main">
<h2><?php _e('Not Found', 'Mflat'); ?></h2>
</div>
<?php endif; ?>
我嘗試了以下代碼,但無濟於事
<?php if(have_posts()) : ?><?php while(have_posts()){
<if(!in_category('Diary')){
: the_post();
}
}?>
有什么更好的辦法可以做到這一點嗎? 我是PHP的新手,盡管我知道必須做的邏輯,但是我無法完全生成代碼來完成這項工作。 我認為boolean會花費太多的工作,並且在stark溢出時發現了一個類似的(http://stackoverflow.com/questions/13587958/display-recent-posts-based-on-their-category-in-wordpress)線程,但是它不太適合我的需求。
非常感謝您的貢獻。 謝謝
只需在循環之前運行query_posts()
函數-它會改變循環
<?php
query_posts(array(
'category_name' => 'my-category-slug', // get posts by category name
'posts_per_page' => -1 // all posts
));
?>
<?php while(have_posts()): the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
不好意思,我只是注意到您要排除類別。 功能相同,參數不同:
$category = get_term_by('name', $cat_name, 'category'); // get category
$id = $category->term_id; // get the category ID
query_posts('cat=-' . $id); // exclude the found ID
<?php
$category = get_term_by('name', 'Diary', 'category'); // get category data
$id = $category->term_id; // get the category ID
// USE THIS IF YOU WANT TO _EXCLUDE_ ALL POSTS FROM "DIARY"
query_posts($query_string . '&cat=-' . $id);
// USE THIS IF YOU WANT TO GET ALL POSTS FROM "DIARY" ONLY
// query_posts($query_string . '&cat=' . $id);
?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<div <?php post_class(); ?>>
<span class="postlabel"><a href="<?php the_permalink() ?>"><span><?php the_time('d'); ?></span><?php the_time('M'); ?></a></span>
<h2 class="post-title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p class="info">
<span class="catinfo"><?php _e('Filed in ', 'Mflat');?><?php the_category(' | ') ?></span>
<span class="cmtinfo">
<?php comments_popup_link( __( 'Leave a comment', 'Mflat' ), __( '1 Comment', 'Mflat' ), __( '% Comments', 'Mflat' ) ); ?>
<?php edit_post_link(' Edit', ' | ', ''); ?>
</span>
</p>
<div class="entry">
<?php $Mflat_options = get_option('Mflat_theme_options'); ?>
<?php if ( $Mflat_options['home_excerpt_check']== 1 ) { the_excerpt(__('» Read more','Mflat')); } else {the_content(__('Continue Reading','Mflat'));} ?>
</div>
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<p class="infobottom">
<?php if(function_exists('the_views')): ?><span class="count"><?php the_views(); ?></span><?php endif; ?>
<?php if (has_tag()): ?><span class="tags"><?php the_tags(' '); ?></span><?php endif; ?>
</p>
</div>
<?php endwhile; ?>
<div class="flip">
<div class="prevpost"><?php next_posts_link(__('Older Entries', 'Mflat')) ?></div>
<div class="nextpost"><?php previous_posts_link(__('Newer Entries', 'Mflat')) ?></div>
</div>
<?php else : ?>
<div id="main">
<h2><?php _e('Not Found', 'Mflat'); ?></h2>
</div>
<?php endif; ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.