Making a Killer wp_link_pages

时间:2012-01-18 作者:AndrettiMilas

我试图获得与下图相似的外观,可以在这里找到一个工作示例:http://www.menshealth.com/celebrity-fitness/mark-wahlberg-fighter-workout

example

The needed code must do the following (some of my questions have been answered, but these remain):

将未链接的活动/当前页码转换为指向页面顶部的链接。

为上一个链接和下一个链接指定唯一的样式类

我当前的代码是in use on this site.

下面的代码是我到目前为止的代码。

给它打电话

<?php
wp_link_pages(array(
    \'before\' => \'<p>\' . __(\'\'),
    \'after\' => \'</p>\',
    \'next_or_number\' => \'next_and_number\', # activate parameter overloading
    \'nextpagelink\' => __(\'Next\'),
    \'previouspagelink\' => __(\'Previous\'),
    \'pagelink\' => \'%\',
    \'echo\' => 1 )
);
?>
自定义函数

// Custom Next/Previous Page
add_filter(\'wp_link_pages_args\', \'wp_link_pages_args_prevnext_add\');
/**
 * Add prev and next links to a numbered link list
 */
function wp_link_pages_args_prevnext_add($args)
{
    global $page, $numpages, $more, $pagenow;

    if (!$args[\'next_or_number\'] == \'next_and_number\') 
        return $args; # exit early

    $args[\'next_or_number\'] = \'number\'; # keep numbering for the main part
    if (!$more)
        return $args; # exit early

    if($page-1) # there is a previous page
        $args[\'before\'] .= _wp_link_page($page-1)
            . $args[\'link_before\']. $args[\'previouspagelink\'] . $args[\'link_after\'] . \'</a>\'
        ;

    if ($page<$numpages) # there is a next page
        $args[\'after\'] = _wp_link_page($page+1)
            . $args[\'link_before\'] . $args[\'nextpagelink\'] . $args[\'link_after\'] . \'</a>\'
            . $args[\'after\']
        ;

    return $args;
}

3 个回复
最合适的回答,由SO网友:Evan Mattson 整理而成

您的分页链接用此标记包装<p class="pagelinks"> 因此,使用CSS可以很容易地使它们具有相同的间距,例如:

.pagelinks a { margin: 0 5px !important; } /* override other defined margins */
也许你也希望它们都集中在页面上:

.pagelinks { display:block; text-align:center; }
将当前页码设置为指向页面顶部的链接-在上一页之前/之后尝试此操作(&P);下一页if语句:

if($page == $pagenow) { // check if current link is current page
    $args[\'pagelink\'] = \'<a href="#header">%</a>\'; // assuming top div has ID "header"
    } else {
    $args[\'pagelink\'] = \'%\';
    }

SO网友:user45461

\'nextpagelink\' => __(\'<span class="next">&gt;</span>\'),
\'previouspagelink\' => __(\'<span class="prev">&lt;</span>\'),
在链接文本中添加带有类名的span意味着您可以使用css将其作为目标

SO网友:Vlad Ionescu

更改此行:

\'before\' => \'<p>\' . __(\'\'),

收件人:

\'before\' => \'<p class="pageLinks">\' . __(\'\'),

然后使用css选择器将第一个<a> 在内部p.pageLinks, 这将获得上一个链接,对上一个链接执行相同的操作<a> 下一个链接的标记。

可以假设段落中的所有其他锚定标记都是编号链接。

提示,第n个孩子会帮你的。

结束

相关推荐

Pagination throws 404

显示自定义帖子类型时,我的分页遇到一些问题。我想显示9篇文章,然后显示数字分页。这是可行的,一些链接是用(对我来说)正确的URL生成的:http://mywebsite/tutorial/page/2 或http://mywebsite/tutorial/taxonomy/page/2 但它总是在404页上完成。欢迎您提出任何想法,以下是我的代码,如果您发现任何问题:)提前谢谢。西里尔<?php $args = array( \'post_type\' =&g