分页在博客网格上不起作用

时间:2016-10-18 作者:vb381

我正在使用medusa wordpress主题。我想它只为博客,所以我想在主页上有最新的帖子。但在主题选项中,并没有更改博客布局的选项,所以我必须创建名为博客的新页面,并通过页面生成器添加了博客和侧栏。在博客设置中,我选择了3列博客。然后将其设置为静态主页,它工作正常,但分页不起作用。当没有静态页面时,分页是有效的,但我不知道如何设置网格。我如何解决这个问题?我有最新的主题和wordpress。谢谢

我应该在哪里找到问题?在wordpress主题文件中,还是在wordpress中?或者我应该试试第三方插件吗?这是来自循环。php。。。

show_pagination = isset($tw_options[\'show_pagination\']) ? $tw_options[\'show_pagination\'] : true;

if ($show_pagination) {
    pagination();
}
wp_reset_query();
}
theme\\u函数。php

function pagination() {
global $wp_query;

$pages = $wp_query->max_num_pages;
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

if (empty($pages)) {
    $pages = 1;
}

if (1 != $pages) {

    $big = 9999; // need an unlikely integer
    echo "<div class=\'tw-pagination pagination\'>";

    $pagination = paginate_links(
            array(
                \'base\' => str_replace($big, \'%#%\', esc_url(get_pagenum_link($big))),
                \'end_size\' => 3,
                \'mid_size\' => 6,
                \'format\' => \'?paged=%#%\',
                \'current\' => max(1, get_query_var(\'paged\')),
                \'total\' => $wp_query->max_num_pages,
                \'type\' => \'list\',
                \'prev_text\' => __(\'&laquo;\', \'medusa\'),
                \'next_text\' => __(\'&raquo;\', \'medusa\'),
    ));

    echo $pagination;

    echo "</div>";
}
}

1 个回复
最合适的回答,由SO网友:Rishabh 整理而成

若您想在主页中显示分页,那个么它需要进行如下代码行中所示的更改

 $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
您需要替换查询变量,如paged (get_query_var(\'paged\')) 具有page 因为在我们使用的其他页面中paged 但在分页的主页中,我们必须使用page. 所以只需将上面的代码行替换为

 $paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
看看这是否有效。

UPDATE

要从一开始创建分页的帖子列表页面,首先必须template 在你的主题和粘贴下面的代码在那里。

<?php
/*
Template Name: Archives 
*/
get_header();
?>
<div style="width:100%; padding:50px;">
    <?php
    $paged = get_query_var(\'page\') ? get_query_var(\'page\') : 1;
    $args = array(\'post_type\' => \'post\',
    \'posts_per_page\' => 10,
    \'paged\' => $paged
    );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
        ?>
            <li style="list-style:none;">
            <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><font style="color:#666666;"><?php the_title();?></a><span style="/* color: #d9d9d9; */font-size: 12px;">&nbsp;(<?php echo get_the_date(\'d.m.Y\');?>)</span></h3>
        <?php 
        /*****     Thumbnail     ******/
        the_post_thumbnail(
        array(120, 90),    //resolution of thumbnail image
            array(

                \'class\' => \'Enter_Class\',    //CSS Class for thumbnail image if any
                \'alt\' => \'post thumbnail\',   //Alternate text for thumbnail image
                \'title\' => \'my custom title\' //title of thumbnail image
            )
        );
        /*******     Thumbnail Ends   ********/

        /***  Description of post  ***/
        ?> <p> <?php the_excerpt();?> <a href="<?php the_permalink() ?>">Read More</a></p></font>
        </li><hr />
        <?php 
    endwhile; ?>

    <div class="class-name" style="float:left;padding:20px;">
        <?php
        // next_posts_link() usage with max_num_pages
        next_posts_link( \'Older Entries\', $loop->max_num_pages );
        ?>
    </div>
    <div class="class-name" style="float:left;padding:20px;">
        <?php
        previous_posts_link( \'Newer Entries\' );
        ?>
    </div>
    <?php 
    // clean up after the query and pagination
    wp_reset_postdata(); 
    ?>
</div>
<?php get_footer(); ?>
需要知道的几点

使用上述代码分页只能在主页中使用。如果要在内部页面中显示分页,则必须在上述代码的一行中进行更改。如果要显示分页in inner pagenon static front page 然后查找以下代码行

$paged = get_query_var(\'page\') ? get_query_var(\'page\') : 1;
只需将以上代码行替换为此行

$paged = get_query_var(\'paged\') ? get_query_var(\'paged\') : 1;
在更新答案之前,已经解释了这些行之间的唯一区别。

您需要设置帖子列表的格式。设置Divsclasses/IDs 内部代码使其看起来像上一个帖子列表页面

UPDATE

如何在中添加分页single.php

在中添加分页single.php, 您只需要两个函数

  1. next_post_link(); 显示下一个帖子链接previous_post_link(); 要显示以前的帖子链接,这些功能将把帖子标题显示为链接。例如,如果您显示next_post_link(); 然后,无论队列中的下一篇帖子是谁,此函数都会将其标题显示为该帖子的链接,并转到previous_post_link();. 那么您的分页将如下所示

    以前职位的职位       ;下一篇文章的标题

    How to Show Custom Text Instead of Title of Post as link

    例如,如果要将自定义文本显示为链接,则希望链接显示如下所示

    下一个帖子       ;上一篇文章

    为此,必须在如下函数中指定自定义文本

    next_post_link(\'%link\', \'Next Post\', TRUE);
    
    在上述函数中,自定义文本Next Post 已显示,因此链接文本将显示为Next Post 而不是帖子标题。

    Where to add these functions

    您将在其中添加这些函数single.php 文件,将显示分页。但根据你的single.php 您可以在注释下方或上方添加这些函数。例如,请在single.php

    <?php comments_template(\'\', true); ?>
    
    此行负责显示在单个帖子页面上的评论框。

    因此,如果要在注释框上方添加分页,请在此行上方添加分页函数<?php comments_template(\'\', true); ?> 像这样

    next_post_link(\'%link\', \'Next\', TRUE);
    previous_post_link(\'%link\', \'Prev\', TRUE);
    <?php comments_template(\'\', true); ?> 
    
    如果要在注释框下方显示分页,请在此行下方添加这两个函数<?php comments_template(\'\', true); ?>.

    最后,别忘了设计你的分页方式。按样式表示下一个和上一个帖子链接的位置。如果在saperate中添加这些函数会更好DIV 像这样

    <div class="class-name" style="float:left;padding:20px;">  
    <?php next_post_link(\'%link\', \'Next Post\', TRUE); ?>
    </div>
    <div class="class-name" style="float:left;padding:20px;">
    <?php previous_post_link(\'%link\', \'Previous Post\', TRUE); ?>
    </div>
    
    只需在注释函数上方或下方添加上面的代码,分页就可以了。

    UPDATE

    在中添加分页的帖子列表Static Front Page 您需要编辑page.php 如果您的静态首页来自dashboard -> pages. page.php 文件负责在wordpress和single.php 文件为帖子详细页面。

    要在静态首页上显示分页,您需要使用我之前在更新的答案(自定义模板代码)中向您显示的模板代码。之前在自定义teplate中使用的代码,将在其中使用相同的代码page.php 要在静态首页中显示分页的文件。

    您需要在page.php 文件但请记住,如果您将在page.php 然后文件分页将出现在wordpress中的所有页面中,因为page.php 文件的内容用于在wordpress的所有页面中显示。而且您只需要在首页分页。因此,要仅在首页显示分页,您需要添加一个IF condition 在该代码中。

    基本上,只需要一个名为is_home(). 在中使用此功能IF condition 像这样

    If(is_home()){
    
        enter code of custom teplate here
    
    }
    
    is_home() 用于检查当前页面是否为主页。如果当前页面是仅主页,则将运行模板代码,以便分页仅显示在首页。

    无论您将在何处添加此代码帖子列表,都会在该位置显示分页。要对列表的外观进行必要的更改,您需要完全理解代码。因此,强烈建议您,要获得所需的页面外观,必须阅读所有注释和描述,然后才能根据需要编辑代码。

    NOTE

    在里面single.php 我们使用此函数来显示分页

    next_post_link();
    
    并且在page.php 我们使用此函数分页

    next_posts_link();
    
    这些函数之间的唯一区别是,我们使用关键字post 在函数名称中single.php and关键字posts 用于page.php.

相关推荐

404 on paginated blog pages

我们正在运行WP 5.6和Beaver Builder 2.4.1.3(Pro)。这是一个多站点安装,我们在主站点上有问题。我们的博客主页加载得很好:https://www.awana.org/blog但后续页面返回404:https://www.awana.org/blog?page=2https://www.awana.org/blog?page=3https://www.awana.org/blog?page=4等等根据博客主页底部的文字,我们应该有60页的帖子。我打开了WP仪表板,查看了帖子。果然