wordpress CMS主题 微信
  • 全部教程
  • Home > wordpress CMS主题制作 > wordpress自定义字段(3):怎样添加自定义字段面版?

    wordpress自定义字段(3):怎样添加自定义字段面版?

    高时银博客 wordpress CMS主题制作 点击: 1,914 次 0 1

    wordpress自定义字段的功能时非常强大的,在wordpress主题制作过程中,我们可以用wordpress自定义字段来干很多的事情,比如:调用文章图片、添加关键词面版、添加商品信息模块……等等,总之,wordpress自定义字段可以帮助主题开发者做很多的事情了。嗯,本章通过“如何创建wordpress自定义字段面版”这个简单案例来讲解自定义字段在wordpress主题制作过程中的使用。

    首先在主题文件夹下创建一个metabox.php文件,然后,在主题的functions.php文件中引用metabox.php文件,即include这个文件。然后就是给meatbox.php文件添加代码了,本案例以在后台文章发表页面添加“关键词和描述”自定义字段面版。

    1、创建一个二维数组,代码如下:

    $new_meta_boxes =
    array(
    "description" => array(
    "name" => "description",
    "std" => "这里填默认的网页描述",
    "title" => "网页描述:"),

    "keywords" => array(
    "name" => "keywords",
    "std" => "这里填默认的网页关键字",
    "title" => "关键字:")
    );

    数组的第一个元素就是description字段的信息,即文章描述,包括标题、字段名、描述信息。第二个元素是keywords字段,即关键字。

    2、创建显示函数显示描述和关键字面版,代码如下:

    function new_meta_boxes() {
    global $post, $new_meta_boxes;

    foreach($new_meta_boxes 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'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';

    // 自定义字段标题
    echo'<h4>'.$meta_box['title'].'</h4>';

    // 自定义字段输入框
    echo '<textarea cols="60" rows="3" name="'.$meta_box['name'].'_value">'.$meta_box_value.'</textarea><br />';
    }
    }

    这个函数用来显示自定义面板的内容,将作为add_meta_box函数才callback参数调用。

    3、创建面版,代码如下:

    function create_meta_box() {
    global $theme_name;

    if ( function_exists('add_meta_box') ) {
    add_meta_box( 'new-meta-boxes', '自定义模块', 'new_meta_boxes', 'post', 'normal', 'high' );
    }
    }

    4、 保存面版更新数据,代码如下:

    function save_postdata( $post_id ) {
    global $post, $new_meta_boxes;

    foreach($new_meta_boxes 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));
    }
    }

    上面的代码,在前面创建面版后,通过add_post_meta()函数向数据库增加面版信息。这段代码还通过update_post_meta()更新和delet_post_meta()来删除相关信息。

    5、添加触发动作。使用动作勾子来调用create_post_meta()函数和save_postdata()函数,代码如下:

    add_action('admin_menu', 'create_meta_box');
    add_action('save_post', 'save_postdata');

    好了,到这里,wordpress自定义字段面版就添加成功了,效果如下图:

    wordpress自定义字段(3):怎样添加自定义字段面版?

    这样,我们在发表文章的时候,就可以添加关键字和文章描述。如果想让前台的代码中能展示这个文章描述和关键字,以利于SEO,我们还要在主题的header.php文件中调用这2个参数。这时,可以通过get_post_meta()函数来调用。代码如下:

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

    好了,wordpress如何添加自定义字段面版就介绍到这里,后续我们继续扩展wordpress自定义字段的功能。


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201506024213.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论