2016-07-24 147 views

回答

5

要做到这一点,你需要做两件事情:

  1. 禁用WordPress默认规范重定向 - 这是必要的,因为WordPress会始终重定向到/2/页面时遇到的URL或查询参数中的页面参数。

  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' 
    ); 
} 

有您可能需要配置三件事情或改变位置:

  1. $page_slug - 这是你的页面的蛞蝓,你的情况,这是heartbreaking-photos
  2. $page_num - 您的分页页数,在您的情况下,这是2
  3. $title - 您希望使用的标题而不是您的页码2

随意根据需要更改代码,或将其复制以覆盖更多其他情况,与此类似。

编辑

重要:一旦你使用的代码,进入设置>永久链接,并点击“保存更改”按钮。这将重建您的重写规则,并且是解决方案工作所必需的。

希望有所帮助。如果您有任何问题,请告诉我。

+0

感谢您的回复,我在本地尝试了您的解决方案,但无法使其正常工作。我尝试了两种不同的主题。我试图在'functions.php'的开头和结尾添加代码。我也一定要改变后期slug..any的想法还有什么可以在我的机器上不同,以防止这件事情工作..? – Delashmate

+0

我更新了我的答案,因为我错过了一件小事。在对重写规则进行更改后(如本代码所做的那样),您应该转至设置>固定链接并单击“保存更改”按钮。这将使您的更改真正起作用,因为重写规则将被重新生成。一旦你尝试过,如果你遇到麻烦,请告诉我。 –

0

好了,所以基本上你不希望显示页面下的导航链接(使用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'); 
相关问题