WordPress如何触发404.php模板

大家快瞧那结冰的湖水,春风一吹冰都融化了,河里的小鱼都游出海面,在湖水中自由的游来游去,多可爱的小鱼啊!多么欢快的小鱼啊!真是让人深深的为它那可爱的摸样着迷。春风一吹过那枯黄的小草身边时,小草突然边了摸样,它从原来的枯黄变成了嫩绿,慢慢地小草从嫩绿变成了鲜绿渐渐地越变越绿,绿的让人难以相信那是小草。啊!小草我为你的样子感到是个奇迹。

当你访问的WordPress站点的网址不存在时,WordPress会调用主题的404.php模板来返回404错误信息,比如:

最近,我需要一种编程方式来触发我的一个免费WordPress插件中的404错误。幸运的是,WordPress使它非常容易实现。本快速好代码教程介绍了两种不同的实现方法。

第一种方法

使用主题的404模板(即404.php)提供404“未找到”响应的第一种方法,我们可以通过wp钩子像下面这样插入我们的函数:

function shapeSpace_trigger_404() {
	
	global $wp_query;
	$wp_query->set_404();
	status_header(404);
	
}
add_action('wp', 'shapeSpace_trigger_404');

然后在函数内部,声明全局变量,并使用set_404()方法在WP查询对象上设置404。最后,我们使用WordPressstatus_header()函数设置404标头响应。该代码的最终结果是使用主题的模板文件404.php提供404HTTP响应。

第二种方法

第二种方法使用pre_get_posts操作钩子设置404错误并提供主题404.php模板。代码像这样:

function shapeSpace_trigger_404($wp_query) {
	
	if ($wp_query->is_main_query()) {
		
		$wp_query->set_404();
		status_header(404);
		
	}
	
}
add_action('pre_get_posts', 'shapeSpace_trigger_404');

在此方法中,我们使用pre_get_posts修改主WP查询。

第一种方法和第二种方法之间的主要区别是使用的钩子和$wp_query变量的获取。在第一种方法中,我们将其声明为全局变量。在第二种方法中,它通过pre_get_posts钩子传递给函数。

原文出自:WP-Mix,由 WordPress大学 翻译整理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

本文WordPress如何触发404.php模板到此结束。日子总是像从指尖渡过的细纱,在不经意间悄然滑落。那些往日的忧愁和误用伤,在似水流年的荡涤下随波轻轻地逝去,而留下的欢乐和笑靥就在记忆深处历久弥新。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?

WordPress安装在主机空间的什么目录里面?根目录在哪里?