下拉框select

下拉框select即<select>标签。

在本框架中,下拉框提供多种下拉情况:单页面、分类(默认仅支持category)、菜单、侧边栏、自定义选项。

文章自定义字段

自定义面板的添加请参考配置文件。配置代码范例:

  1. //注意,本范例配置变量并非$seo_meta
  2. $ashu_meta[] = array(
  3.   'name'    => '选择页面',
  4.   'id'      => '_page_select',
  5.   'desc'    => 'Pleas select a page',
  6.   'std'     => '',
  7.   'subtype' => 'page', //选项为所有单页面
  8.   'type'    => 'select'
  9. );
  10. $ashu_meta[] = array(
  11.   'name'    => 'Category下拉',
  12.   'id'      => '_category_select',
  13.   'desc'    => 'Which fruits do you like?',
  14.   'std'     => '',
  15.   'subtype' => 'category', //选项为所有分类,默认仅支持category
  16.   'type'    => 'select'
  17. );
  18. $ashu_meta[] = array(
  19.   'name'    => '选择菜单',
  20.   'id'      => 'nav_menu',
  21.   'desc'    => 'Pleas select a menu',
  22.   'std'     => '',
  23.   'subtype' => 'nav_menu', //选项为所有菜单
  24.   'type'    => 'select'
  25. );
  26. $ashu_meta[] = array(
  27.   'name'    => '选择侧边栏',
  28.   'id'      => '_sidebar_select',
  29.   'desc'    => 'Pleas select a sidebar',
  30.   'std'     => '',
  31.   'subtype' => 'sidebar', //选项为所有侧边栏
  32.   'type'    => 'select'
  33. );
  34. $ashu_meta[] = array(
  35.   'name'    => '选择作者性别',
  36.   'id'      => '_other_select',
  37.   'desc'    => 'Pleas select a sidebar',
  38.   'std'     => 'male',
  39.   'subtype' => array(
  40.     'male'      => '男士',
  41.     'female'    => '女士',
  42.     'thirdness' => '其它'
  43.   ),  //自定义选择项
  44.   'type' => 'select'
  45. );

详解:

name - 自定义字段标题

id - 自定义字段名称,获取数据时用。敬告:请确配置文件中所有id都不相同,同时避免post\page\title等词。

desc - 自定义字段描述信息

std - 默认选中(若subtype设置为page\category\menu\sidebar等,请将std设置为page或category的id,若subtype是自定义的数组,请将std设置为subtype中的一个)

subtype - 数组或字符串,'page'-下拉选项为单页面,'category'-下拉选项为文章分类,'nav_menu'-下拉选项为所有菜单,'sidebar'-下拉选项为所有侧边栏,注意:若想支持自定义分类法,比如产品分类,请仿照category修改对应类文件。

type - 值为select时,本条字段类型为下拉选择框

获取与输出范例:

  1. //获取文章自定义字段的值,请参考get_post_meta函数
  2. //获取
  3. $post_id = $post->ID; //首选需要获取文章id
  4. //获取page选项
  5. $select_page = get_post_meta($post_id,'_page_select',true); //_page_select即配置数据中的id值
  6. //获取category
  7. $select_category = get_post_meta($post_id,'_category_select',true); //_category_select即配置数据中的id值
  8. //获取menu
  9. $select_menu = get_post_meta($post_id,'_menu_select',true);
  10. //获取sidebar
  11. $select_sidebar = get_post_meta($post_id,'_sidebar_select',true);
  12. //获取自定义的选项
  13. $select_other = get_post_meta($post_id,'_other_select',true);
  14. //输出
  15. //页面的输出$select_page为页面id
  16. $page_obj = get_post($select_page);
  17. echo '<a href="'.get_page_link($select_page).'">'.$page_obj->post_title.'</a>';
  18. //category的输出
  19. $term = get_term($select_category,'category'); //获取分类
  20. echo '<a href="'.get_term_link($term,'category');.'">'.$term->name.'</a>';
  21. //菜单menu的输出
  22. if($select_menu){
  23.   $menu_term = get_term($select_menu,'nav_menu');
  24.   echo '<h1>'.$menu_term->name.'</h1>'; //输出带单名称
  25.   $args = array(
  26.     'container' => false,
  27.     'sort_column' => 'menu_order',
  28.     'menu_id'=>'menu_id',
  29.     'depth'=>1,
  30.     'menu'=>$select_menu,
  31.     'menu_class'=>'menu_class'
  32.     );
  33.     wp_nav_menu($args); //输出菜单请参考wp_nav_menu函数
  34. }
  35. //侧边栏sidebar的输出
  36. if(!$select_sidebar){
  37.   foreach ( $GLOBALS['wp_registered_sidebars'] as $sidebar ) {
  38.     if($select_sidebar==$sidebar['id']){
  39.       $sidebar_name = $sidebar['name'];
  40.       break;
  41.     }else{
  42.       $sidebar_name = '';
  43.     }
  44.   }
  45.   if($sidebar_name!='')
  46.     echo '<h1>'.$sidebar_name.'</h1>'; //输出侧边栏名称
  47.   dynamic_sidebar($select_sidebar); //输出侧边栏
  48. }

分类自定义字段

分类页面自定义字段的添加请参考配置文件。

配置代码,以及数据获取请参考文章自定义字段

设置页面

设置页面的添加请参考配置文件。

配置代码,以及数据获取请参考文章自定义字段。

自定义分类法的支持

以产品分类products为例:将配置选项中的subtype的值设置为products即可。