我是靠谱客的博主 心灵美夕阳,这篇文章主要介绍Wordpress 之 Rewrite Rules,现在分享给大家,希望可以做个参考。

-----------------------------------------------------------------

场景描述:

       自定义wp主题中,添加了个关于页面(about.php) 。

目的:

  顺利访问 http://<domain>/about.php 

-----------------------------------------------------------------

解决方案:在主题的functions.php文件中, 自定义重写规则 rewrite_rules

-----------------------------------------------------------------

Step 1.  添加 generate_rewrite_rules

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ( ! function_exists( 'testthemes_rewrite_rules' ) ) : /** * @param WP_Rewrite $wp_rewrite */ function testthemes_rewrite_rules( $wp_rewrite ) { $testthemes_rules = [ 'about(.*)$' => 'index.php?my_custom_page=about', ]; $wp_rewrite->rules = $testthemes_rules + $wp_rewrite->rules; } endif; // testthemes_rewrite_rules add_action( 'generate_rewrite_rules', 'testthemes_rewrite_rules' );

  

复制代码
1
说明:
pattern=>url格式: 'about(.*)$' => 'index.php?my_custom_page=about'

-----------------------------------------------------------------

Step 2.  添加 query_vars

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
if ( ! function_exists( 'testthemes_add_query_vars' ) ) : /** * @param array $public_query_vars * @return array */ function testthemes_add_query_vars($public_query_vars) { $public_query_vars[] = 'my_custom_page'; return $public_query_vars; } endif; add_action( 'query_vars', 'testthemes_add_query_vars' );

  

 

-----------------------------------------------------------------

Step3.   添加 template_redirect 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if ( ! function_exists( 'testthemes_template_redirect' ) ) : /** * @void */ function testthemes_template_redirect() { global $wp; /**@var WP_Query $wp_query*/ global $wp_query; /**@var WP_Rewrite $wp_rewrite*/ global $wp_rewrite; //查询my_custom_page变量 $my_custom_page = $wp_query->query_vars['my_custom_page']; switch ($my_custom_page) { case 'about': include(TEMPLATEPATH.'/about.php'); die(); } } endif; add_action( 'template_redirect', 'testthemes_template_redirect' );

  

-----------------------------------------------------------------

Step4.   添加 load-themes.php

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if ( ! function_exists('testthemes_flush_rewrite_rules')): /** * @void */ function testthemes_flush_rewrite_rules(){ /**@var string $pagenow*/ global $pagenow; /**@var WP_Rewrite $wp_rewrite*/ global $wp_rewrite; if( 'theme.php' == $pagenow && isset( $_GET['activated'] )) { $wp_rewrite->flush_rules(); } } endif; add_action( 'load-themes.php', 'testthemes_flush_rewrite_rules' );

  

-----------------------------------------------------------------

Step5.   重新激活主题

 

END

 

转载于:https://www.cnblogs.com/gouge/p/7159580.html

最后

以上就是心灵美夕阳最近收集整理的关于Wordpress 之 Rewrite Rules的全部内容,更多相关Wordpress内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部