Dec11

为分类页面添加TDK,给 wordpress Category (分类)添加字段

wplogo-5

1. 在模板目录下的 function.php 里添加包含 页面 category_field.php

包括代码如下:

require_once( dirname(__FILE__).'/category_field.php' );  

2.新建category_field.php文件,加入以下代码

    <?php   
    // 分类添加字段  
    function ems_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','ems_add_category_field',10,2);  
      
    // 分类编辑字段  
    function ems_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','ems_edit_category_field',10,2);  
      
    // 保存数据  
    function ems_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','ems_taxonomy_metadate',10,1);  
    add_action('edited_category','ems_taxonomy_metadate',10,1);  
    ?>  

效果自己到分类目录看吧,
调用方法

    <?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>  

Comments are closed.