在Pages_Links中传递自定义参数

时间:2011-07-02 作者:Sein Oxygen

例如,我domain.com/about?project=1 但我已经启用了永久链接,我正在使用thins生成分页paginate_links. 问题是生成的链接是这样的domain.com/about?project=1/page/1 它打破了一切,因为项目被视为1/page/1

有一种方法可以domain.com/about/project/1/page/1 在分页链接中?我正在使用get从一个表单提交它来显示项目。

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

要向分页帖子中的链接添加参数,请使用\'add_args\' 函数中的参数。必须将参数作为关联数组传递。因此,要添加project=1 在所有链接的末尾,您可以执行以下操作:

global $wp_query;
paginate_links(array(
  \'total\' => $wp_query->max_num_pages,
  \'current\' => (get_query_var(\'paged\') ? get_query_var(\'paged\') : 1),
  \'base\' => \'http://domain.com/about/%_%\',
  \'format\' => \'page/%#%\',
  \'add_args\' => array( \'project\' => 1 /* or whatever the project number is*/ ),
));
希望有帮助!

编辑以获取domain.com/about/projects/1/page/1, 您可以添加自定义permastruct。我假设about 是一页。

function wpse21802_init(){
  add_rewrite_rule( \'([^/]+)/projects/([^/])/?$\', \'index.php?pagename=$matches[1]&project=$matches[2]\', \'top\' );
  add_rewrite_rule( \'([^/]+)/projects/([^/])/page/(/d+)/?$\', \'index.php?pagename=$matches[1]&project=$matches[2]&paged=$matches[3]\', \'top\' );
}
add_action( \'init\', \'wpse21802_init\' );
添加代码后,通过转到设置->永久链接刷新重写规则。

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s