欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:961
  2. 浏览总数:11,509,446
  3. 评论:3873
  4. 分类目录:103 个
  5. 注册用户数:5853
  6. 最后更新:2018年10月17日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

WordPress自定义页面(非模版)

  这种方法的自由度较高,并且可以创建非WordPress格式的URL,非常有用。比如我们要把 https://www.iteblog.com/test 转交给主题文件夹下的 /custom/test.php 来处理,就可以用这种方式来处理。这种方法用到 template redirect 钩子,template redirect 是 WordPress 在预处理好所有参数设置之后决定调用主题模板的时候调用的。

  我们只需在主题的 function.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.'/custom/'."/$basename.php");
}
  
add_action('template_redirect', 'templateRedirect');

  这样就实现了 WordPress 查找 /custom 文件夹下的 php 文件,并且将相匹配的 URL 请求转交给对应的 php 文件来处理的效果,与此同时,这个 php 文件还保持了对 WordPress API 的调用,因此留给我们的空间非常大。

  例如如果我们在 /custom 文件夹下创建一个 test.php 的文件如下:

<?php get_header();?>
<div id="main">
	<div id="content">
		<div id="post-999" class="page type-page status-publish hentry">
			<h2 class="post-title">Iteblog page</h2>
			<div class="post-content">
				<?php echo "test"; ?>
				<div class="clear"></div>
			</div><!-- END .post-content -->
			<div class="clear"></div>
		</div><!-- #post-## -->
	</div><!-- END #content -->
	<?php get_sidebar(); ?>
	<div class="clear"></div>
</div><!-- END #main -->
<?php get_footer(); ?>

  那么只要输入https://www.iteblog.com/test 就能显示test,并且具有主题的框架和 CSS 样式,非常方便好用。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【WordPress自定义页面(非模版)】(https://www.iteblog.com/archives/1200.html)
喜欢 (3)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!
(2)个小伙伴在吐槽
  1. 这个不错
    Ray2014-12-31 10:54 回复
    • 是的,可以很方便的自定义页面。
      w3970907702014-12-31 12:37 回复