如果在模板中创建404.php
all not-found requests will be handled by this template file, 在那里你可以放你想要的任何东西。
例如404.php
文件可以使用以下内容(只是草稿):
<?php get_header(); ?>
<h3>
<?php
$slug = get_query_var(\'name\');
if ( $slug ) {
$name = ucwords(str_replace(\'-\', \' \', $slug));
printf( __(\'Searching for post "%s"?\') . \' \', $name );
_e(\'It does not exists, maybe you can create it.\');
} else {
$name = \'\';
_e(\'Content you required not exists, maybe you can create it.\');
}
?>
<h3>
<div id="user-submitted-posts-wrapper" data-name="<?php echo $name; ?>">
<?php echo do_shortcode(\'[user-submitted-posts]\'); ?>
</div>
<script>
jQuery().ready(function($) {
var name = $(\'#user-submitted-posts-wrapper\').data(\'name\');
if ( name != \'\') $(\'.usp-title input\').eq(0).value(name);
});
</script>
<?php get_footer(); ?>
插件do
not 支持预编译帖子标题,但可以用jquery填充。我将脚本直接插入页脚,以获得答案semplicity,但使用
wp_register_script 和
wp_equeue_script. 您还必须确保jquery包含在页面中,如果您使用
wp_register_script
您可以将jquery放在脚本依赖项中。
高级任务
如果您想将一些404与其他404区别开来,可以挂接
template_include
滤器E、 g.如果您想在所需的职位类型为“产品”时显示不同的404,您可以使用:
add_filter(\'template_include\', \'change_404_template\');
function change_404_template($template) {
if ( is_404() && ( get_query_var(\'post_type\') == \'product\' ) ) {
return get_stylesheet_directory() . \'/my-custom-template-for-not-found.php\' ;
}
return $template;
}
不同的方法是在404上进行完全重定向。这会降低性能,因为向服务器发送了两个请求(一个导致404,另一个是重定向),但在某些情况下,此方法可能很有用。如果你想走这条路
template_redirect
措施:
add_action(\'template_redirect\', \'redirect_404\');
function redirect_404() {
if ( is_404() && ( get_query_var(\'post_type\') == \'product\') ) ) {
wp_redirect( home_url() ); // I redirect to home, you can redirect wherever you want
exit();
}
}