在自定义函数中找不到空间

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

正如你在我的下一个/上一个链接中所看到的,我在“上一个”之前有一个额外的空间,我似乎找不到它。非常感谢您的帮助:

http://themeforward.com/demo2/?p=1813&page=2

自定义功能:

// 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;
}
称之为:

<?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 )
);

?>

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

好吧,事实证明这与WordPress有更多的关系,然后我们意识到。这个wp_link_pages 问题中使用的钩子所在的函数是罪魁祸首,而不是您所做的任何事情。如果您想查看一下,该函数位于post模板中。wp includes目录中的php文件。

“违规”代码位于输出数字的循环中(WP3.3中的第651行):

 for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
    $j = str_replace(\'%\',$i,$pagelink);
    $output .= \' \';//This adds a space before the page number link
    if ( ($i != $page) || ((!$more) && ($page==1)) ) {
        $output .= _wp_link_page($i);
     }
     $output .= $link_before . $j . $link_after;
     if ( ($i != $page) || ((!$more) && ($page==1)) )
        $output .= \'</a>\';
  }
如果您真的想绕过它,(我不建议这样做),您可以返回页面列表的html,然后使用preg_match 并将其移除。

但实际上,数字和a之间应该有一个空格,因此您可能只需要调整CSS,使其看起来正确(如上所述,这些元素周围有一个边距)。

SO网友:Jared

有一个CSS规则margin: 0 5px; 在…上.tags a, 我想这就是为什么它把它向右推了1个空间。

这也是离题(与WordPress无关)。

结束

相关推荐

Print_r如果放置在侧边栏或single.php中,则显示两个不同的POST->ID

我的网站正在为同一篇文章显示两个不同的ID(如果是print\\r)。如果我问:<?php echo $post->ID;?> 在单曲中。php它给了我一个数字。如果我在侧边栏中做同样的事情,它会给我一个完全不同的结果。这就是我在单曲上打印的内容。phpstdClass Object ( [ID] => 59 [post_author] => 1 [post_date] => 2012-01-01 20:29:18 [post_date_gmt] =