wordpress中怎样设置404自定义错误指向wp-404-handler.php???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress中怎样设置404自定义错误指向wp-404-handler.php???相关的知识,希望对你有一定的参考价值。

.新建一个记事本,在里面写入上面代码,保存,连同txt格式重新命名为wp-404-handler.php
2.上传该文件到服务器根目录,设置404自定义错误指向wp-404-handler.php。
3.进入wordpress管理后台,设置(Options)-永久链接(Permalinks)
这个是在百度上面找到的方法,请问怎样自定义啊??

修改固定连接在要设置指向,默认情况下,如果WordPress查找某页面未果,会用404.php页面来代替。尽管如此,有时web服务器也会出错,在WordPress没有察觉服务器的错误前,我们需要设置服务器以运行自定义404页面,确保web服务器将404.php模板文件传送到访问者端。
要让服务器使用自定义错误文件,需要在WordPress主目录(index.php文件所在目录)下编辑 .htaccess文件

追问

能给一个wordpress 3.1 的.htaccess文件么?我这儿没有!

参考技术A 打开一个网站,比如百度,乱输入一个地址,好了出现一个404 页面,右键查看网页源代码,全选,复制,粘贴到一个txt文档里,改名字404.php 好了 把这个里面的地址都改成你自己网站的就行了 然后上传.......

wordpress 自定义帖子类型中的字段验证和显示错误

【中文标题】wordpress 自定义帖子类型中的字段验证和显示错误【英文标题】:Field Validation and displaying error in wordpress custom post type 【发布时间】:2012-10-24 09:00:36 【问题描述】:

大家好,经过一些工作后,我在 wordpress 中开始了我的第一个插件,我在字段验证方面受到了打击。

问题是我有一个名为"preix_author_url" 的字段,然后在我的插件中使用

add_action('save_post', 'my_function_name');

我已经创建了一个验证类示例

<?php
class validator 
    public static function isUrl($str = '') 
        if(strlen($str) == 0)
            return FALSE;

        return preg_match('!^http(s)?://[\w-]+\.[\w-]+(\S+)?$!i',$str);
    

"my_function_name()"

    function my_function_name()
            global  $post;
            if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
            if(isset($_POST['post_type']) && $_POST['post_type'] == 'wallpapers')
                require_once( WALLP_FILE_PATH . '/wallp-core/wallp-validator.php' );                
                $validate = new validator();
                if(isset($_POST['preix_author_url']))
                    if($validate->isUrl($_POST['preix_author_url']))
                        update_post_meta($post->ID, 'preix_author_url', $_POST['preix_author_url']);
                
            
        

现在,如果验证返回 false,我想在帖子页面中显示错误。但我没有办法显示这些错误或通知..

【问题讨论】:

【参考方案1】:

所以过了一会儿,我终于想通了。我保证会在 20 分钟内回复你,但我失败了,因为我认为这很容易!我在到处搜索后发现 admin_notices 在 save_post 钩子上不起作用!所以这是一个很好的解决你的问题的方法。

    //for action hooks
add_action('save_post', 'my_function_name');
$validator = new Validator();
// called after the redirect
add_action('admin_head-post.php', array(&$validator, 'add_plugin_notice'));

//change your my_function_name with this
function my_function_name() 
    global $post;
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return;
    if (isset($_POST['post_type']) && $_POST['post_type'] == 'wallpapers') 
        require_once( WALLP_FILE_PATH . '/wallp-core/wallp-validator.php' );
        $validate = new validator();
        if (isset($_POST['preix_author_url'])) 
            //if($validate->isUrl($_POST['preix_author_url']))
            //update_post_meta(
            //$post->ID, 'preix_author_url', $_POST['preix_author_url']);
            $validator = new Validator();
            if (!$validator->isUrl($_POST['preix_author_url'])) 
                $validator->update_option(1);
                return;
             else 
                update_post_meta(
                        $post->ID, 
                        'preix_author_url', $_POST['preix_author_url']);
            
        
    


//ive also revised your class
class Validator 
    //new isUrl validation
    //better use filter_var than preg_match
    function isUrl($str = '') 
        if (filter_var($str, FILTER_VALIDATE_URL) === FALSE) 
            return FALSE;
         else 
            return TRUE;
        
    

    //You can change the error message here. 
    //This for your your admin_notices hook
    function show_error() 
        echo '<div class="error">
       <p>Error Found!!</p>
       </div>';
    

    //update option when admin_notices is needed or not
    function update_option($val) 
        update_option('display_my_admin_message', $val);
    

    //function to use for your admin notice
    function add_plugin_notice() 
        if (get_option('display_my_admin_message') == 1)  
            // check whether to display the message
            add_action('admin_notices', array(&$this, 'show_error'));
            // turn off the message
            update_option('display_my_admin_message', 0); 
        
    

我在我的个人网站上试过这个,效果很好!!我也从中学到了很多东西!

【讨论】:

我还有另一个问题..我现在还有另外 2 个字段如何显示这些错误?我们不能收集数组中的所有错误,然后将其转储到错误块中吗?

以上是关于wordpress中怎样设置404自定义错误指向wp-404-handler.php???的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress设置腾讯公益404页面

WordPress404页面自定义

wordpress 3.8.1 类别第 2 页错误 404 未找到 / 自定义帖子类型

WordPress 中自定义 wp_query 的分页需要 404 错误页面

使用移动浏览器请求自定义帖子类型时出现 Wordpress REST API 404 错误

阿里云的云虚拟主机wordpress设置404页面