每页发布不起作用

时间:2015-12-01 21:22:08

标签: php wordpress custom-post-type

此功能用于在主页上显示自定义帖子类型(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();
}

1 个答案:

答案 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()

上的文档