给 WordPress 分类目录添加自定义META属性字段

很多使用 WordPress 程序建网站的同学都苦于 WP 程序的分类目录的属性太少了,只有分类的标题,别名,描述。不能像文章模板里可以调用 wordpress 自定义栏目,而分类目录下的其它属性却很难自定义。

为了让我们更好的利用 wordpress 程序做出需要的网站功能效果,分享一下如何给分类目录添加自定义的 META 属性。

1. 在模板目录下的 function.php 里,插入以下代码,用于添加包含 页面 category_field.php

  1. // 分类添加字段
  2. require_once( dirname(__FILE__).‘/category_field.php’ );

2. 新建 category_field.php 页面,代码如下:

  1. <?php
  2. // 分类添加字段
  3. function ems_add_category_field(){
  4. echo<div class=“form-field”>
  5. <label for=“cat-tel”>Tel</label>
  6. <input name=“cat-tel” id=“cat-tel” type=“text” value=“” size=40>
  7. <p>The telephone.</p>
  8. </div>';
  9. echo ‘<div class=“form-field”>
  10. <label for=“cat-url”>URL</label>
  11. <input name=“cat-url” id=“cat-url” type=“text” value=“” size=“40”>
  12. <p>The URL.</p>
  13. </div>';
  14. }
  15. add_action(‘category_add_form_fields’,’ems_add_category_field’,10,2);
  16. // 分类编辑字段
  17. function ems_edit_category_field($tag){
  18. echo<tr class=“form-field”>
  19. <th scope=“row”><label for=“cat-tel”>Tel</label></th>
  20. <td>
  21. <input name=“cat-tel” id=“cat-tel” type=“text” value=”‘;
  22. echo get_option(‘cat-tel-.$tag->term_id).’” size=40/><br>
  23. <span class=“cat-tel”>.$tag->name.’ on the phone.</span>
  24. </td>
  25. </tr>';
  26. echo ‘<tr class=“form-field”>
  27. <th scope=“row”><label for=“cat-url”>URL</label></th>
  28. <td>
  29. <input name=“cat-url” id=“cat-url” type=“text” value=”‘;
  30. echo get_option(‘cat-url-‘.$tag->term_id).’” size=”40″/><br>
  31. <span class=“cat-url”>‘.$tag->name.’ on the URL.</span>
  32. </td>
  33. </tr>';
  34. }
  35. add_action(‘category_edit_form_fields’,’ems_edit_category_field’,10,2);
  36. // 保存数据
  37. function ems_taxonomy_metadate($term_id){
  38. if(isset($_POST[‘cat-tel’]) && isset($_POST[‘cat-url’])){
  39. //判断权限–可改
  40. if(!current_user_can(‘manage_categories’)){
  41. return $term_id;
  42. }
  43. // 电话
  44. $tel_key = ‘cat-tel-.$term_id; // key 选项名为 cat-tel-1 类型
  45. $tel_value = $_POST[‘cat-tel’]; // value
  46. // url
  47. $url_key = ‘cat-url-.$term_id;
  48. $url_value = $_POST[‘cat-url’];
  49. // 更新选项值
  50. update_option( $tel_key, $tel_value );
  51. update_option( $url_key, $url_value );
  52. }
  53. }
  54. // 虽然要两个钩子,但是我们可以两个钩子使用同一个函数
  55. add_action(‘created_category’,’ems_taxonomy_metadate’,10,1);
  56. add_action(‘edited_category’,’ems_taxonomy_metadate’,10,1);
  57. ?>

3、调用方法(可以在 wordpress 文章模板(single.php)调用分类的 META 信息)

  1. <?php
  2. // 取出当前分类 id: $categories[0]->term_id
  3. $categories = get_the_category();
  4. $term_id = $categories[0]->term_id;
  5. $cat_name = $categories[0]->name;
  6. ?>
  7. <div class=“phone”>
  8. <div class=“p1″><?php echo get_option(‘cat-tel-.$term_id);?></div>
  9. <div class=“p2″><a href=“<?php echo get_option(‘cat-url-.$term_id);?> “ target=“_blank”><?php echo $cat_name;?></a></div>
  10. </div>

以上是通过代码的方式给我们的分类目录添加 META 属性字段,我们还可以使用插件的方法来完成同样的效果。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 网站怎么制作用户浏览记录

2022-4-30 23:17:55

WordPress教程

WordPress is_home()或者is_front_page()判断不生效

2022-5-1 4:59:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索