WordPress创建自定义URL页面模板
WordPress创建模板的其实都非常的简单,而WordPress添加自定义页面一般有两种方法,一种是使用自定义模板,另外一种是使用template_redirect动作钩子来实现自定义页面。这也是子凡最近在开发博客导航中屡试不爽的一个功能,其中主要就是为了完成博客导航中URL的一个统一及规范,所以这就成了最好的一个方法了。

WordPress自定义创建页面模板其实非常的简单,但是也比较的有局限性,因为WordPress在page页面类型中的url是不支持同名存在的,所以一旦与分类目录活着标签别名相同后,自定义固定链接使用文章名的链接就会出现错误,这也使得不能规范博客导航中的URL链接,所以这就成了子凡在开发博客导航中一直纠结的一个梗,所以最后不得不弃用WordPress自定义模板的这个功能。
template_redirect 动作钩子很有用,因为它是WordPress知道用户正在浏览的页面的关键。它在特定的页面选择 theme template 之前执行。在只在网站的前端触发,并不在管理员页面触发。直接调用 WordPress 的 API. 来解决这个问题。
老规矩,在当前主题functions.php中添加一下代码:
//自定义页面模板
function loadCustomTemplate($template) {
global $wp_query;
if(!file_exists($template))return;
$wp_query->is_page = true;
$wp_query->is_single = false;
$wp_query->is_home = false;
$wp_query->comments = false;
// if we have a 404 status
if ($wp_query->is_404) {
// set status of 404 to false
unset($wp_query->query["error"]);
$wp_query->query_vars["error"]="";
$wp_query->is_404=false;
}
// change the header to 200 OK
header("HTTP/1.1 200 OK");
//load our template
include($template);
exit;
}
function templateRedirect() {
$basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
loadCustomTemplate(TEMPLATEPATH.'/blogs/'."/$basename.php");
}
add_action('template_redirect', 'templateRedirect');这样就实现了WordPress查找主题文件夹下/blogs 文件夹下的 php 文件,并且将相匹配的 URL 请求转交给对应的 php 文件来处理的效果,与此同时,这个 php 文件还保持了对 WordPress API 的调用,因此留给我们的空间非常大。
如果我们需要自定义某个页面链接的模板,就需要在主题文件夹下的/blogs目录创建一个xxx.php的php文件。这里页面的内容子凡就不提供代码示例了。
那么最后我们就只需要输入 domAIn.com/xxx 就能显示这个xxx.php的文件内容了,并且xxx.php这个文件是支持所有WordPress函数的,具有主题的框架和CSS样式,非常方便好用。
您可能感兴趣的文章
- 11-11wordpress导航菜单新窗口打开的设置方法
- 11-11WP-PostViews插件如何修改文章阅读数
- 11-11wordpress附件保存目录改为年月日和上传文件重命名为时间戳
- 11-11WordPress 上传媒体库文件重命名 全格式支持
- 11-11解决wordpress安装后更新或者上传文件权限不足的问题
- 11-11wordpress实现主动推送+熊掌号推送同步进行
- 11-11WordPress 添加友情链接设置 nofollow 属性
- 11-11WordPress 实现 wp_list_bookmarks 自定义友情链接排除调用
- 11-11WordPress首页指定或排除某分类文章显示
- 11-11WordPress不同分类调用不同的文章模板


阅读排行
推荐教程
- 09-22wordpress如何添加描述
- 11-11wordpress附件保存目录改为年月日和上传文件重命名为时间戳
- 10-19纯代码给WordPress网站添加独立下载页面功能
- 11-11WordPress之给文章内容中间插入广告的实现方法
- 10-18wordpress无插件调用随机文章的方法
- 10-18WordPress 技巧:WordPress 后台也使用七牛云存储
- 10-24Win10无法调节声音怎么办?Win10无法调节声音的解决方法
- 10-19WordPress上传图片HTTP错误的解决方法
- 10-18让注册用户可以上传自己的头像的WordPress插件-WP User Avatar v2.
- 11-11国外WordPress精美主题如何DIY汉化成中文版呢?





