此功能用于在主页上显示自定义帖子类型(frontpage_items)。它曾经在工作,但在其中一个WP更新中的某个地方,它打破了。现在它只显示4个帖子中的一个并打破页脚。
我已经通过只做1 post_per_page而不是all(-1)来阻止我的页脚。但我真的需要让所有4个人回来。
PS。这是我用离岸资源建造的一个地点......
以下是该函数的代码:
function frontpage_items_init() {
$args = array(
'exclude_from_search' => true,
'publicly_queryable' => false,
'label' => 'Frontpage Items',
'show_ui' => true,
'show_in_menu' => true,
'supports' => array( 'title', 'editor')
);
register_post_type( 'frontpage_items', $args );
}
add_action( 'init', 'frontpage_items_init' );
add_action('woo_content_after', 'show_frontpage_items', 9999);
function show_frontpage_items() {
if(is_front_page()) {
$f_posts = get_posts(array(
'post_type' => 'frontpage_items',
'order' => 'ASC',
'posts_per_page' => -1
));
if(count($f_posts) = 0) {
global $post;
foreach ($f_posts as $fp) {
setup_postdata($fp);
?>
<div class="frontpage_item <?php echo $fp->post_name; ?>_wrap">
<div class="wrap">
<div class="frontpage_item_body">
<?php the_content(); ?>
</div>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
<?php
}
}
}
wp_reset_query();
}
答案 0 :(得分:0)
我在这里看到错误的多件事可能会导致您的问题。首先,您试图从帖子计数中分配一个值,而不是通过比较运算符进行检查。
if( count($f_posts) = 0 )
应该是
的内容 if( count($f_posts) != 0 ) //not equal to 0
第二个问题是Wordpress要求您在使用您的方法迭代帖子时使用全局$post
变量。
foreach( $f_posts as $fp )
setup_postdata($fp);
应该是
foreach( $f_posts as $post )
setup_postdata($post);
有关详细信息,请参阅get_posts()