星期二 , 2020-10-27
首页 > WordPress教程 > 如何为WordPress自定义文章类型设置URL重写规则

如何为WordPress自定义文章类型设置URL重写规则

我们都知道wodpress后台”固定连接”页可给普通文章设置URL重写规则,但是如果是自己添加的自定义文章类型就无法设置重写规则了。很多人都有重写这个URL规则的需求,自定义文章类型默认的URL重写规则是可以通过代码来重写成你需要的样式的。实现原理就是利用wordpress内置的add_rewrite_rule函数来进行重定向改写URL规则。具体实现方式如下代码:

WordPress自定义文章类型设置URL重写规则方法

1、以下是带.html后缀的自定义文章类型URL重写规则:

/* 
自定义文章类型固定链接结构为domain.com/book/id.html 
代码来源: www.wpzhinan.com
*/
    add_filter('post_type_link', 'custom_book_link', 1, 3);
		
    function custom_book_link( $link, $post = 0 ){
	
    	if ( $post->post_type == 'book' ){
			return home_url( 'book/' . $post->ID .'.html' ); //带.html后缀
    	} else {
    		return $link;
    	}
    }

    add_action( 'init', 'custom_book_rewrites_init' );

    function custom_book_rewrites_init(){
    	add_rewrite_rule(
			'book/([0-9]+)?.html$', //带.html后缀
    		'index.php?post_type=book&p=$matches[1]',
    		'top' );
    }

代码说明:以上代码以自定义文章类型”book”为例,你可将以上代码中的book替换为你自己的自定义文章类型名称。并将以上代码插入你主题的function.php保存。注意:保存后需到后台”固定连接”页面点击”保存更改”以更新.htaccess文件,这样重写规则才能真正生效。

2、不带.html后缀的自定义文章类型URL重写规则:

/* 
自定义文章类型固定链接结构为domain.com/book/id/
代码来源: www.wpzhinan.com
*/
    add_filter('post_type_link', 'custom_book_link', 1, 3);
		
    function custom_book_link( $link, $post = 0 ){
	
    	if ( $post->post_type == 'book' ){
    		return home_url( 'book/' . $post->ID .'/' ); //不带.html后缀
    	} else {
    		return $link;
    	}
    }

    add_action( 'init', 'custom_book_rewrites_init' );

    function custom_book_rewrites_init(){
    	add_rewrite_rule(
    		'book/([0-9]+)?$', //不带.html后缀
    		'index.php?post_type=book&p=$matches[1]',
    		'top' );
    }

本文地址:http://www.wpzhinan.com/jiaocheng/322.html
版权申明:除部分代码外,本站内容均为原创,转载请注明来源,违者必究侵权责任!

相关推荐

WP_Image_Editor_Imagick 指令注入漏洞修复方法

Imagick组件爆出了超级漏洞,危害等级极高,直接导致大量使用Imagick组件的网站均 ...