wordpress - 在 WooCommerce 存档产品页面上更改分页基础 slug
问题描述
我想在 WooCommerce 存档页面上将分页 slug,当前的“page”更改为“strana”。
带有网址的默认设置http://localhost/obchod/
并且http://localhost/obchod/page/2/
工作正常。当我更改分页基础并重新保存永久链接时,它不起作用。最终网址应如下所示:http://localhost/obchod/strana/2/
这是我更改分页基础的代码:
function custom_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->pagination_base = 'strana';
}
add_action('init', 'custom_rewrite_rules');
我总是在 WordPress 上重新保存永久链接,或者我使用$wp_rewrite->flush_rules();
,但这些都不起作用。
请注意,此代码适用于 WordPress 分页,但不适用于 WooCommerce 分页商店页面。
我究竟做错了什么?
解决方案
首先,我们需要更改 Wordpress 生成的链接的格式。由于我们只需要更改商店存档的分页格式,因此我们添加了一个条件标签 is_shop() ,因此另一个分页将保持旧格式。
function custom_rewrite_rules() {
global $wp_rewrite;
if(is_shop()) {
$wp_rewrite->pagination_base = 'strana';
}
}
add_action('template_redirect', 'custom_rewrite_rules');
接下来,我们添加_rewrite_rule() 让Wordpress理解分页页面的新链接格式
add_rewrite_rule(
'^obchod/strana/([^/]+)/?',
'index.php?paged=$matches[1]',
'top'
);
obchod here = 您的商店基地,默认其商店 fow woocommerce 商店
更新测试
function custom_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->pagination_base = 'strana';
}
add_action('init', 'custom_rewrite_rules');
add_rewrite_rule(
'^obchod/strana/([^/]+)/?',
'index.php?paged=$matches[1]&post_type=product',
'top'
);
推荐阅读
- python-3.x - 根据python中的键值过滤dicts列表
- websocket - websocket._exceptions.WebSocketProxyException:通过代理连接失败状态:403 在任何地方的 python 中运行时
- reactjs - 如何修复“重新加载页面后更改选项卡”。
- node.js - 如何在 express 中设置正确的 cookie?
- php - PHP proc_open() 转义多行参数
- python - 变量值在打印和附加之间发生变化
- three.js - 将新材料应用于置换贴图生成的修改网格?
- javascript - react-native texinput 在 iOS 中变为多行
- javascript - 这个 [].fill.call({ length: 3 }, 4) 示例如何工作?
- php - Laravel Socialite - 检索更多信息