WordPress通过代码添加自定义固定链接

有时是安装了一些插件,比如问答型、文档型等,插件往往会自定义一些新内容类型,如:question,docs。这时候WordPress后台设置的固定链接对这些类型的内容就不起作用了,所以这时就得自定义固定链接,这里以安装了DW Question & Answer和weDocs插件为例。

设置内容显示链接

在列表中显示的链接

function custom_my_link( $link, $post = 0 )
{
    if ( $post->post_type == 'dwqa-question' ){
        return home_url( 'question/' . $post->ID .'.html' );
    }else if($post->post_type == 'docs'){
        return home_url( 'docs/' . $post->ID .'.html' );
    } else {
        return $link;
    }
}
add_filter('post_type_link', 'custom_my_link', 1, 3);

解析固定链接

从列表中点击的链接需要解析才能正确获取的内容

function custom_my_rewrites_init()
{
    add_rewrite_rule('question/([0-9]+)?.html$','index.php?post_type=dwqa-question&p=$matches[1]','top' );
    add_rewrite_rule('docs/([0-9]+)?.html$','index.php?post_type=docs&p=$matches[1]','top' );
}
add_action( 'init', 'custom_my_rewrites_init' );

以上代码都添加的主题的functions.php中,完成后需要重新在WordPress后台设置下固定链接,否则会出现404错误

爱生活,爱技术

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注