之前也介绍过一种方法,通过新建页面或者新建文章的方式来新建一个页面。详细可以看下面的文章:
但是有的用户会不老实,将我们新建的页面删除,这就非常的难受,比如我们开发了个插件或者主题,通过新建页面来让用户设置一些东西,但是在你发布插件或主题后,一半人删除了我们新建的页面,跑来找你,问你他怎么设置不了,那就非常难受了。
今天,我们介绍新方法,只需代码即可创建页面,但是也有一个弊端,就是在WordPress后台的页面里面找不到我们新建的页面,而且在设置中不能使用朴素的固定链接的形式。我们的代码如下:
<?php
function hbpay_rewrite_rules($wp_rewrite)
{
$new_rules['hbpay$'] = 'index.php?hbpay=1';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'hbpay_rewrite_rules');
function hbpay_query_vars($public_query_vars)
{
if (!is_admin()) {
$public_query_vars[] = 'hbpay';
}
return $public_query_vars;
}
add_filter('query_vars', 'hbpay_query_vars');
function hbpay_load_template()
{
$hbpay = get_query_var('hbpay');
if ($hbpay) {
global $wp_query;
$template = hidden_block_dir."/pay/hbpaypage.php";//页面文件所在位置,我的文件内容为666
load_template($template);
exit;
}
}
add_action('template_redirect', 'hbpay_load_template', 5);
注意上面的hidden_block_dir.”/pay/hbpaypage.php”,这是页面所在位置,需要放入你自己的文件,其中hidden_block_dir为C:\wwwroot\a.com\wp-content\plugins\HB,是我用来测试的插件目录。我是在插件入口文件这样声明的define(“hidden_block_dir”,dirname(FILE));。
hbpay$的意思是访问例如:http://a.com/hbpay的时候实际访问的是http://a.com/index.php?hbpay=1
$public_query_vars[] = ‘hbpay’;是http://a.com/index.php?hbpay=1这个的参数,用来在$hbpay = get_query_var(‘hbpay’);这里获取值,然后加载我们的页面文件。
然后我们就能这样http://a.com/hbpay/访问页面了。
© 版权声明
THE END
暂无评论内容