【问题标题】:Wordpress Event Organiser PaginationWordpress 活动组织者分页
【发布时间】:2017-06-17 14:45:24
【问题描述】:

如果有人熟悉 Event Organizer 模板。我可以使用一些帮助。我试图将其限制为每页 5 个并添加自定义分页。我似乎无法编辑 eo-loop-events.php 文件中的循环以添加自定义查询以将其限制为每页 5 个。

我已经尝试了简码,整个下午都在查看他们的文档,但一无所获。我认为可能有一种简单的方法可以做到这一点,但我错过了它,或者我不能用免费版本做到这一点。

任何帮助将不胜感激。

【问题讨论】:

    标签: wordpress custom-wordpress-pages


    【解决方案1】:

    我只需要为我的 wp 活动组织者模板实现分页。这是在widget-event-list.php 内,但可能适用于其他模板。这是从模板中的工作示例复制粘贴的。

    这使用 WP_Query 循环而不是模板默认使用的 $eo_event_loop()。 WP_Query 循环具有仅获取“事件”数据的参数。

    幸运的是,活动组织者功能(如eo_get_event_datetime_format())仍然有效。

    在这个例子中,我只输出<h4>标签中的标题。

    这个解决方案的灵感来自this answer to another question

    <h1>Paginated Query Area</h1>
    <?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    
        $args = array(
            'post_type'=>'event', // Your post type name
            'posts_per_page' => 3,
            'paged' => $paged,
        );
    
        $loop = new WP_Query( $args );
    ?>
    <?php if ( $loop->have_posts() ): ?>
        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
        <?php
            //Generate HTML classes for this event
            $eo_event_classes = eo_get_event_classes();
    
            //For non-all-day events, include time format
            $format = eo_get_event_datetime_format();
        ?>
    
        <h4 class="event-title"><?php the_title(); ?></h4>
    
        <?php endwhile; ?>
    
        <div class="upcoming-pagination">
            <?php // Pagination display
                $total_pages = $loop->max_num_pages;
    
                if ($total_pages > 1){
    
                    $current_page = max(1, get_query_var('paged'));
    
                    echo paginate_links(array(
                        'base' => get_pagenum_link(1) . '%_%',
                        'format' => '/page/%#%',
                        'current' => $current_page,
                        'total' => $total_pages,
                        'prev_text'    => __('« prev'),
                        'next_text'    => __('next »'),
                    ));
                }
            ?>
        </div>
    <?php endif; ?>
    <?php wp_reset_postdata(); ?>
    

    【讨论】:

    • 没有意识到它还在外面,老实说现在不记得了。我以某种方式解决了它,但忘记将其标记为已解决。我将您的答案标记为答案,因为它可能会在将来对某人有所帮助
    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2020-07-09
    • 2016-05-19
    • 2023-04-03
    • 2015-08-08
    • 2012-12-17
    • 1970-01-01
    相关资源
    最近更新 更多