如何在wordpress中创建自定义分页固定链接
我在wordpress博客中有几篇文章。例如,如果我在我的博客以下链接:如何在wordpress中创建自定义分页固定链接
http://example.com/heartbreaking-photos 任何想法,我怎样才能改变从
http://example.com/heartbreaking-photos/2 到http://example.com/heartbreaking-photos/CUSTOM-STRING
定制STRING瞄准第二个页面的链接是一个页面内的自定义标题
要做到这一点,你需要做两件事情:
禁用WordPress默认规范重定向 - 这是必要的,因为WordPress会始终重定向到
/2/
页面时遇到的URL或查询参数中的页面参数。添加一个自定义重写规则,将您的自定义标题引导到页面的第二页 - 这对于允许您想要的链接格式而言基本上是必需的。
在代码方面,这是你所需要的(这是一个工作的解决方案,我只是测试它在本地):
// Removes the canonical redirection
remove_filter('template_redirect', 'redirect_canonical');
// Add custom rewrite rules
add_action('init', 'my_add_custom_rewrite_rules');
function my_add_custom_rewrite_rules() {
// Slug of the target page
$page_slug = 'heartbreaking-photos';
// Page number to replace
$page_num = 2;
// Title you wish to replace the page number with
$title = 'custom-string';
// Add the custom rewrite rule
add_rewrite_rule(
'^' . $page_slug . '/' . $title . '/?$',
'index.php?pagename=' . $page_slug . '&page=' . $page_num, 'top'
);
}
有您可能需要配置三件事情或改变位置:
-
$page_slug
- 这是你的页面的蛞蝓,你的情况,这是heartbreaking-photos
-
$page_num
- 您的分页页数,在您的情况下,这是2
-
$title
- 您希望使用的标题而不是您的页码2
。
随意根据需要更改代码,或将其复制以覆盖更多其他情况,与此类似。
编辑
重要:一旦你使用的代码,进入设置>永久链接,并点击“保存更改”按钮。这将重建您的重写规则,并且是解决方案工作所必需的。
希望有所帮助。如果您有任何问题,请告诉我。
你可以试试这个代码。通过在阿根廷,你会得到页ID,页面标题和使用这些 https://codex.wordpress.org/Function_Reference/get_pages
或者您也可以通过页面ID调用页面标题
$pagetitle= get_post_field('post_title', $page_id);
好了,所以基本上你不希望显示页面下的导航链接(使用css或修改儿童主题中的发布模板)并添加自定义链接。如果我理解得很好:
删除导航链接(取决于你的主题,但基本上):
.nav-links { display: none; }
您可以通过功能+自订栏添加自定义链接:
创建自定义字段,例如在您的文章“我的URL”,看食品:https://codex.wordpress.org/Custom_Fields
添加到您的functions.php(在儿童主题或自定义网站的插件):
function my_page_add_to_content($content) {
if (! empty(get_post_meta(get_the_ID(), 'my-url', true)) {
$content .= '<a href="'.get_post_meta(get_the_ID(), 'my-url', true).'">URL TEXT HERE</a>'
}
return $content;
}
add_filter('the_content', 'my_page_add_to_content');
感谢您的回复,我在本地尝试了您的解决方案,但无法使其正常工作。我尝试了两种不同的主题。我试图在'functions.php'的开头和结尾添加代码。我也一定要改变后期slug..any的想法还有什么可以在我的机器上不同,以防止这件事情工作..? – Delashmate
我更新了我的答案,因为我错过了一件小事。在对重写规则进行更改后(如本代码所做的那样),您应该转至设置>固定链接并单击“保存更改”按钮。这将使您的更改真正起作用,因为重写规则将被重新生成。一旦你尝试过,如果你遇到麻烦,请告诉我。 –