捕捉特定模式的URL,并通过插件显示其特定内容

时间:2018-09-02 作者:saeid ezzati

我在一个插件中编写了一个短代码,其中显示了一些项目。

我的短代码:【showItems】

现在我把这个短代码放在一个名为items的页面中:

http://mywordpress_site.com/items
在这个短代码中,我每页只显示100个项目,并且有分页。每个页面url必须采用以下模式:

http://mywordpress_site.com/items/1/ // page 2
http://mywordpress_site.com/items/12/ // page 12
现在,我想知道如何使用此模式从我的插件中捕获url,并显示此url模式的相关项目:

/items/$pageNumber/

1 个回复
SO网友:De Coder

可能还有其他的方法,但我想做的是在您的中创建一个重写规则。htaccess文件,类似于:

RewriteRule ^items/([0-9]*) /items/?page=$1

现在,您的用户可以看到:http://mywordpress_site.com/items/1/

但在幕后,您的网站可以看到:http://mywordpress_site.com/items/?page=1

然后在您的短代码中:

$page = (int) $_GET[\'page\'];

WP中有管理重写的工具,使用这些工具可能会更好。htaccess,因此您可以将所有代码保存在插件文件夹中。我还没有玩过,所以这里什么都没有:

这应该做同样的事情,但不修改。htaccess文件。

add_action( \'init\', \'add_items_rules\' ); function add_items_rules() { add_rewrite_rule( "items/(\\d*)", "items/?page=$matches[1]", "top" ); }

结束

相关推荐

Pages>max_num_ages不会抛出404

我在WP管理中创建了一个名为Blog的新页面,并为其创建了自定义页面模板。在模板中,我有一个简单的分页自定义查询。$query = new WP_Query(array( \'post_type\' => \'post\', \'posts_per_page\' => 1, \'paged\' => $paged )); 看起来一切正常,除了我手动键入比url的“/页/”部分后可用的页码更大的页码。页面不会抛出404错误,但会在没有自定义循环的情况下将页面呈现为正常。