WordPress:分类页面不用于帖子

时间:2010-10-18 作者:glazsasha

请首先让我解释一下我的问题。我使用wordpress为flash游戏创建网站,所以我没有特定的贴子页面post-new.php?post_type=game 你可以看到这不是wordpress的常规帖子。我尝试使用codex中的代码:

<?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, \'category\', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $post_per_page = 4; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    \'category__in\' => array($cat),
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'paged\' => $paged,
    \'posts_per_page\' => $post_per_page,
    \'caller_get_posts\' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
  while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
     <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <small><?php the_time(\'F jS, Y\') ?> <!-- by <?php the_author() ?> --></small>
        <div class="entry">
          <?php the_content(\'Read the rest of this entry »\'); ?>
        </div>
        <p class="postmetadata"><?php the_tags(\'Tags: \', \', \', \'<br />\'); ?> Posted in <?php the_category(\', \') ?> | <?php edit_post_link(\'Edit\', \'\', \' | \'); ?>  <?php comments_popup_link(\'No Comments »\', \'1 Comment »\', \'% Comments »\'); ?></p>
      </div>
    <?php endwhile; ?>
    <div class="navigation">
      <div class="alignleft"><?php next_posts_link(\'« Older Entries\') ?></div>
      <div class="alignright"><?php previous_posts_link(\'Newer Entries »\') ?></div>
    </div>
  <?php else : ?>

  <h2 class="center">Not Found</h2>
  <p class="center">Sorry, but you are looking for something that isn\'t here.</p>
  <?php get_search_form(); ?>

 <?php endif; 

 $wp_query = $temp;  //reset back to original query

}  // if ($category)
?>
我认为它真的必须适用于帖子,但在这种情况下,我尝试为游戏更改帖子,尝试了很多方法,但还没有成功。谁能告诉我这个代码有什么变化吗?我认为一开始的问题是“have post”和“the loop”。谢谢

2 个回复
最合适的回答,由SO网友:sorich87 整理而成

在查询参数中添加“post\\u type”参数(\'post_type\' => \'game\'):

<?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, \'category\', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
  $post_per_page = 4; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    \'post_type\' => \'game\',
    \'category__in\' => array($cat),
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'paged\' => $paged,
    \'posts_per_page\' => $post_per_page,
    \'caller_get_posts\' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
  while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
     <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <small><?php the_time(\'F jS, Y\') ?> <!-- by <?php the_author() ?> --></small>
        <div class="entry">
          <?php the_content(\'Read the rest of this entry »\'); ?>
        </div>
        <p class="postmetadata"><?php the_tags(\'Tags: \', \', \', \'<br />\'); ?> Posted in <?php the_category(\', \') ?> | <?php edit_post_link(\'Edit\', \'\', \' | \'); ?>  <?php comments_popup_link(\'No Comments »\', \'1 Comment »\', \'% Comments »\'); ?></p>
      </div>
    <?php endwhile; ?>
    <div class="navigation">
      <div class="alignleft"><?php next_posts_link(\'« Older Entries\') ?></div>
      <div class="alignright"><?php previous_posts_link(\'Newer Entries »\') ?></div>
    </div>
  <?php else : ?>

  <h2 class="center">Not Found</h2>
  <p class="center">Sorry, but you are looking for something that isn\'t here.</p>
  <?php get_search_form(); ?>

 <?php endif; 

 $wp_query = $temp;  //reset back to original query

}  // if ($category)
?>
参考号:http://codex.wordpress.org/Function_Reference/query_posts#Post_.26_Page_Parameters

SO网友:glazsasha
<?php
if (is_page() ) {
$cat = get_post_meta($posts[0]->ID, \'cat\', true);
}
if ($cat) {
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$post_per_page = 4; // -1 shows all posts
$do_not_show_stickies = 1; // 0 to show stickies

$args=array(
\'post_type\' => \'game\',
\'category__in\' => array($cat),
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'paged\' => $paged,
\'posts_per_page\' => $post_per_page,
);
$temp = $wp_query;  // assign orginal query to temp variable for later use   
$wp_query = null;
$wp_query = new WP_Query($args); 
if( have_posts() ) : 
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
 <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?    php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
      <?php the_content(\'Read the rest of this entry »\'); ?>
    </div>
    <p class="postmetadata"><?php the_tags(\'Tags: \', \', \', \'<br />\'); ?> Category in <?   php the_category(\', \') ?> |</p>
  </div>
<?php endwhile; ?>
<div class="navigation">
  <div class="alignleft"><?php next_posts_link(\'« Older Entries\') ?></div>
  <div class="alignright"><?php previous_posts_link(\'Newer Entries »\') ?></div>
</div>
<?php else : ?>

<h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn\'t here.</p>
<?php get_search_form(); ?>

<?php endif; 

$wp_query = $temp;  //reset back to original query

}  // if ($category)
?>
结束

相关推荐

WordPress删除wp_List_Categories中最后一项的分隔符

我正在尝试删除最后一个分隔符(通常是<br/> 标记,但我将其从wp\\u list\\u categories的最后一个链接更改为“/”)。基本上我想要这个:类别1//类别2//类别3//看起来像这样:类别1//类别2//类别3以下是我当前使用的代码:<?php $cat_array = array(); $args = array( \'author\' => get_the_author_meta(\'id\'),&#x