• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > wordpress CMS主题制作 > wordpress自定义字段(3):怎样添加自定义字段面版?

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

    作者: 分类:wordpress CMS主题制作 点击: 2,798 次
    wordpress CMS主题:ssmay主题

      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自定义字段的功能。



      QQ二维码

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

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.