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 样式,非常方便好用。

本文链接:https://www.abcziyuan.com/wordpress/wordpress-course/4937.html

开通VIP会员
分享到: 生成海报
免责声明1. 本站所有资源来源于用户上传和网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员转载本站资源文章,本站有权封禁会员账号!
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.abcziyuan.com",如遇到无法解压的请联系管理员!
开通VIP会员
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活