CMS教程

WordPress后台发布文章,自定义栏目和字段的方法

时间:01-29   作者:YDW   来源:YDW.ORG   阅读:103  
内容摘要:后台开发过程中添加一个独立的模块,对添加文章相关的内容会起到非常方便的作用。自定义模块是在后台,所以在加载管理员界面的时候就调用函数,我们添加这些信息主要是写文章的时候,所以保存文章的时候要调用函数保存文章数据。首先定义变量来存储我们的信息:有了上面的函数你就可以在后台看到自定义模板了。到了这里基本工作就完成了,剩下的就是页面调用了,更上一篇文章调用自定义字段一样。

云端网 - www.ydw.org

后台开发过程中添加一个独立的模块,对添加文章相关的内容会起到非常方便的作用。

第一步,我们要添加代码,我们把代码放在一个独立的php文件中.

先新建一个php文件,比如.php ,然后在.php中添加代码加载那个php文件:

include('admin/links_add_box.php');

文件名可随意,注意路径。我这里两个文件都在主题文件夹下。。接下来的工作都是变价.php文件。。在.php中只添加一对标签就行了,后面所有代码都之间。

第二步:首先添加下面两行代码,两个钩子:

add_action('admin_menu', 'create_meta_box');   
//在加载管理员界面界面的时候调用create_meta_box函数   
add_action('save_post', 'save_postdata');   
//在保存文章的时候调用save_postdata函数

自定义模块是在后台,所以在加载管理员界面的时候就调用函数,我们添加这些信息主要是写文章的时候,所以保存文章的时候要调用函数保存文章数据。首先定义变量来存储我们的信息:

$new_meta_box = array(   
        "description" => array(   
            "name"=>"description",   
            "std"=>"默认描述",   
            "title"=>"描述:"  
        ),   
        "keywords" => array(   
        "name"=>"keywords",   
        "std"=>"默认关键字",   
        "title"=>"关键字:"  
        )      
    );

接着添加函数 :

    function create_meta_box(){   
        //先判断函数是否存在   
        if(function_exists('add_meta_box')){   
            //add_meta_box函数在文章编辑页面内添加版块,具体用法放在文章最后   
            add_meta_box('new-meta-box','自定义模块','new_meta_box','post','normal','high');   
            //此函数调用new_meta_box函数   
        }   
    }

再添加函数 ,这个函数就是定义模板样式,也就是输出模板的html代码:

    function new_meta_box(){   
        global $post,$new_meta_box;   
        foreach($new_meta_box as $meta_box){   
            $meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);   
            if($meta_box_value == "")   
                $meta_box_value = $meta_box['std'];   
            echo '';   
            echo '

'.$meta_box['title'].'

'; echo '
'; } }

有了上面的函数你就可以在后台看到自定义模板了。

下面就是我们开始添加的钩子中的保存数据的钩子,也就是函数 :

    function save_postdata($post_id){   
        global $post,$new_meta_box;   
        foreach($new_meta_box as $meta_box){   
            if(!wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )){   
                return $post_id;   
            }   
            if('page' == $_POST['post_type']){   
                if(!current_user_can( 'edit_page', $post_id ))   
                    return $post_id;   
            }else{   
                if(!current_user_can( 'edit_post', $post_id ))   
                    return $post_id;   
            }   
            $data = $_POST[$meta_box['name'].'_value'];   
            if(get_post_meta($post_id, $meta_box['name'].'_value') == "")   
                add_post_meta($post_id, $meta_box['name'].'_value', $data, true);   
            elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true))   
                update_post_meta($post_id, $meta_box['name'].'_value', $data);   
            elseif($data == "")   
                delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true));   
        }   
    }

到了这里基本工作就完成了,剩下的就是页面调用了,更上一篇文章调用自定义字段一样。

但是注意这里我们在函数中保存数据的函数 ()和更新数据的函数 中,字段名称是$[‘name’].也就是分别是 、,所以调用的时候:

    $desc="description_value";   
    $key="keywords_value";   
    $description=get_post_meta($post->ID,$desc,true);   
    $keywords=get_post_meta($post->ID,$key,true);

也可以在循环内添加以下代码

ID,"description_value",true);?>

即可调用成功。

原文参考自:

(云端网 )

www.ydw.org - 云端网


标签:发布文章  自定义栏目  自定义字段  
网站版权  8888888888  8888888888