如何编辑或覆盖核心功能?

时间:2016-12-14 作者:Swen

我想向由paginate_links() 作用然后,我可以更轻松地扩展自定义分页以使用AJAX。

据我所知,这个函数是不可插入的,也没有可用的挂钩。

生成的链接paginate_links() 如下所示:

<a class="page-numbers" href="https://example.com/list/page/2/"><span class="screen-reader-text">Page </span>2</a>
我想将数据页参数添加到<a> 标记,使其看起来像这样:

<a data-page="2" class="page-numbers" href="https://example.com/list/page/2/"><span class="screen-reader-text">Page </span>2</a>
编辑不可插入的核心WordPress功能的最佳方式是什么?

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

没有筛选器,但您可以设置type 参数到array 当你打电话的时候paginate_links(), 然后可以对返回的数组运行筛选器。

示例:

$links = array_map(
    function( $link ) {
        if ( FALSE === strpos( $link, \'/page/\' ) )
            return str_replace( \'<a \', \'<a data-page="1" \', $link );

        return preg_replace(
            \'~<a (.*)/page/(\\d+)~\',
            \'<a data-page="\\\\2" \\\\1/page/\\\\2\',
            $link
        );
    },
    paginate_links( [ \'type\' => \'array\' ] )
);

print join( \' | \', $links );

相关推荐