每页张贴不起作用


Post Per Page not working

此函数用于在主页上显示自定义帖子类型(frontpage_items)。它曾经工作过,但在WP的一次更新中,它在某个地方坏了。现在它只显示4个帖子中的一个,并打断页脚。

我只做了一个post_per_page,而不是all(-1),就可以停止打断我的页脚了。但我真的需要把他们四个都拿回来。

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();
}

我在这里看到的多个错误可能会导致您的问题。首先,您试图从posts计数中分配一个值,而不是通过比较运算符进行检查。

if( count($f_posts) = 0 )

应该是类似的东西

if( count($f_posts) != 0 ) //not equal to 0

第二个问题是Wordpress要求您在使用方法迭代posts时使用全局$post变量。

foreach( $f_posts as $fp )
    setup_postdata($fp);

应该是

foreach( $f_posts as $post )
    setup_postdata($post);

有关更多信息,请参阅get_posts() 的文档