我的wordpress博客中有一篇包含多个页面的文章。例如,我在我的博客中有以下链接:
http://example.com/heartbreaking-photos 任何想法如何更改第二页的链接
http://example.com/heartbreaking-photos/2 到http://example.com/heartbreaking-photos/CUSTOM-STRING
CUSTOM-STRING旨在成为页面内的自定义标题
答案 0 :(得分:6)
要实现这一目标,您需要做两件事:
禁用默认的WordPress规范重定向 - 这是必要的,因为WordPress在遇到URL或查询参数中的page参数时将始终重定向到/2/
页面。
添加自定义重写规则以将自定义标题定向到页面的第二页 - 这对于允许您需要的链接格式非常必要。
就代码而言,这就是您所需要的(这是一个有效的解决方案,我刚刚在本地进行了测试):
// 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
。您可以随意更改代码,也可以将其复制以涵盖更多其他案例,与此类似。
修改强>
重要:使用代码后,请转到设置>永久链接并单击“保存更改”按钮。这将重建您的重写规则,并且是解决方案工作所必需的。
希望有所帮助。如果您有任何问题,请告诉我。
答案 1 :(得分:0)
你可以尝试这个手抄本。传递arg,您将获得页面ID,页面标题并使用它们 https://codex.wordpress.org/Function_Reference/get_pages
或者您可以按页面ID
调用页面标题$pagetitle= get_post_field( 'post_title', $page_id );
答案 2 :(得分:0)
好的,基本上您不想在页面下显示导航链接(使用css或修改子主题中的帖子模板)并添加自定义链接。如果我理解得很好:
删除导航链接(取决于您的主题,但基本上):
.nav-links { display: none; }
您可以通过功能+自定义文件添加自定义链接:
创建自定义字段,例如帖子中的“my-url”,请参阅codex: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' );