如何在wordpress

时间:2016-07-24 11:42:49

标签: wordpress

我的wordpress博客中有一篇包含多个页面的文章。例如,我在我的博客中有以下链接:

http://example.com/heartbreaking-photos 任何想法如何更改第二页的链接

http://example.com/heartbreaking-photos/2http://example.com/heartbreaking-photos/CUSTOM-STRING

CUSTOM-STRING旨在成为页面内的自定义标题

3 个答案:

答案 0 :(得分:6)

要实现这一目标,您需要做两件事:

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

  2. 添加自定义重写规则以将自定义标题定向到页面的第二页 - 这对于允许您需要的链接格式非常必要。

  3. 就代码而言,这就是您所需要的(这是一个有效的解决方案,我刚刚在本地进行了测试):

    // 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
    4. 您可以随意更改代码,也可以将其复制以涵盖更多其他案例,与此类似。

      修改

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

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

答案 1 :(得分:0)

你可以尝试这个手抄本。传递arg,您将获得页面ID,页面标题并使用它们 https://codex.wordpress.org/Function_Reference/get_pages

enter image description here

或者您可以按页面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' );