从自定义页面模板的类别中获取帖子

时间:2017-04-13 作者:Roger Wayne

我已经为页面创建了自定义模板(销售项目)。我想使用该自定义模板显示页面上特定类别的帖子。这很好,但前提是该类别中至少有一个职位。如果没有,它将给出以下错误。

可能有什么问题?

注意:未定义的偏移量:0 in/home/username此/public\\u html/5423565/wp包含/class wp查询。php在线3152

这是代码。为了更好地阅读,删除了Html:

<?php
/*
Template Name: Sell items
Template Post Type: post
*/
get_header(); 
global $post;
?>

<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>

<!-- THIS IS WHERE PAGE CONTENT IS DISPLAYED -->
<?php the_content(); ?>
<!-- THIS IS WHERE PAGE CONTENT IS DISPLAYED -->

<?php
$args = array( \'numberposts\' => 20, \'category_name\' => \'sell-items\' );                      
$posts = get_posts( $args );                        
?>

<?php if(!empty($posts) && count($posts)>0) : ?>

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

<?php else: ?>

Not found
<?php endif; ?>

2 个回复
SO网友:ciaika

您可以使用WP\\u Query代替get\\u posts()函数:

  $args = array( \'numberposts\' => 20, \'category_name\' => \'sell-items\' );  
  $wp_query = new WP_Query($args);

if ($wp_query->have_posts()) : while($wp_query->have_posts()) : $wp_query->the_post();

echo \'<li><a href="\'.get_the_permalink().\'">\'.get_the_title().\'</a></li>\';
    endwhile;
  endif;

SO网友:WebElaine

看起来您的endif和endwhile放错了位置。尝试以下操作:

<?php
/*
Template Name: Sell items
Template Post Type: post
*/
get_header(); 
global $post;
?>

<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>

<!-- THIS IS WHERE PAGE CONTENT IS DISPLAYED -->
<?php the_content(); ?>
<!-- THIS IS WHERE PAGE CONTENT IS DISPLAYED -->
<?php endwhile; ?>
<?php endif; ?>

<?php
$args = array( \'numberposts\' => 20, \'category_name\' => \'sell-items\' );                      
$posts = get_posts( $args );                        
?>

<?php if(!empty($posts) && count($posts)>0) : ?>

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

<?php else: ?>

Not found
<?php endif; ?>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请