很多使用WORDPRESS程序建网站的同学都苦于WP程序的分类目录的属性太少了,只有分类的标题,别名,描述。不能像文章模板里可以调用wordpress自定义栏目,而分类目录下的其它属性却很难自定义。
    为了让我们更好的利用wordpress程序做出需要的网站功能效果,引力分享一下如何给分类目录添加自定义的META属性。
    1. 在模板目录下的 function.php 里,插入以下代码,用于添加包含 页面 category_field.php

    1. // 分类添加字段
    2. require_once( dirname(__FILE__).'/category_field.php' );
    1. 新建 category_field.php 页面,代码如下:
      <?php
      // 分类添加字段
      function ribs_add_category_field() {
       echo '<div class="form-field"><label for="cat-tel">Tel</label><input name="cat-tel" id="cat-tel" type="text" value="" size="40"><p>The telephone.</p></div>';
       echo '<div class="form-field"><label for="cat-url">URL</label><input name="cat-url" id="cat-url" type="text" value="" size="40"><p>The URL.</p></div>';
      }
      add_action('category_add_form_fields', 'ribs_add_category_field', 10, 2);
      // 分类编辑字段
      function ribs_edit_category_field($tag) {
       echo '<tr class="form-field"><th scope="row"><label for="cat-tel">Tel</label></th><td><input name="cat-tel" id="cat-tel" type="text" value="';
       echo get_option('cat-tel-' . $tag->term_id) . '" size="40"/><br><span class="cat-tel">' . $tag->name . ' on the phone.</span></td></tr>';
       echo '<tr class="form-field"><th scope="row"><label for="cat-url">URL</label></th><td><input name="cat-url" id="cat-url" type="text" value="';
       echo get_option('cat-url-' . $tag->term_id) . '" size="40″/><br><span class="cat-url">' . $tag->name . ' on the URL.</span></td></tr>';
      }
      add_action('category_edit_form_fields', 'ribs_edit_category_field', 10, 2);
      // 保存数据
      function ribs_taxonomy_metadate($term_id) {
       if (isset($_POST['cat-tel']) && isset($_POST['cat-url'])) {
           //判断权限–可改
           if (!current_user_can('manage_categories')) {
               return $term_id;
           }
           // 电话
           $tel_key = 'cat-tel-' . $term_id; // key 选项名为 cat-tel-1 类型
           $tel_value = $_POST['cat-tel']; // value
           // url
           $url_key = 'cat-url-' . $term_id;
           $url_value = $_POST['cat-url'];
           // 更新选项值
           update_option($tel_key, $tel_value);
           update_option($url_key, $url_value);
       }
      }
      // 虽然要两个钩子,但是我们可以两个钩子使用同一个函数
      add_action('created_category', 'ribs_taxonomy_metadate', 10, 1);
      add_action('edited_category', 'ribs_taxonomy_metadate', 10, 1);
      ?>
      
      3、调用方法(可以在wordpress文章模板(single.php)调用分类的META信息)
      <?php
      // 取出当前分类 id: $categories[0]->term_id
      $categories = get_the_category();
      $term_id = $categories[0]->term_id;
      $cat_name = $categories[0]->name;
      ?>
      <div class="phone">
      <div class="p1"><?php echo get_option('cat-tel-' . $term_id); ?></div>
      <div class="p2"><a href="<?php echo get_option('cat-url-' . $term_id); ?> " target="_blank"><?php echo $cat_name; ?></a></div>
      </div>
      
      以上是通过代码的方式给我们的分类目录添加META属性字段,