好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

WordPress自定义内容类型列表中分类(custom taxono

WordPress自定义内容类型列表中分类(custom taxonomy)的过滤

wordpress开发的项目越多,接触到的深层的东西就越多,比如各种post type 和coustom taxonomy 的定义,过滤,查询等等,这次帮北京一个客户使用wordpress开发一个企业应用,非常类似erp,使用wordpress做erp我还是第一次,而且还有很多很奇怪的需求.

比如这次,在供应商管理里,我把供应商做成了一个自定义内容类型,自定义类型中还有自定义分类,客户要对自定义分类还要显示一个过滤器,比如默认的按月分类.

找了很久,终于找到下面的代码可以解决,利用到了wordpress的一个action(动作)和一个filter(过滤器),实例代码如下:

function  work_restrict_manage_posts() {        global   $typenow ;        $args = array (  'public'  => true,  '_builtin'  => false );        $post_types  = get_post_types( $args );        if  ( in_array( $typenow ,  $post_types ) ) {        $filters  = get_object_taxonomies( $typenow );            foreach  ( $filters   as   $tax_slug ) {                $tax_obj  = get_taxonomy( $tax_slug );               wp_dropdown_categories( array (                    'show_option_all'  => __( '所有 ' . $tax_obj ->label ),                    'taxonomy'  =>  $tax_slug ,                    'name'  =>  $tax_obj ->name,                    'orderby'  =>  'term_order' ,                    'selected'  =>  $_GET [ $tax_obj ->query_var],                    'hierarchical'  =>  $tax_obj ->hierarchical,                    'show_count'  => false,                    'hide_empty'  => false               ));           }       }   }   function  work_convert_restrict( $query ) {        global   $pagenow ;        global   $typenow ;        if  ( $pagenow == 'edit.php' ) {            $filters  = get_object_taxonomies( $typenow );            foreach  ( $filters   as   $tax_slug ) {                $var  = & $query ->query_vars[ $tax_slug ];                if  ( isset( $var ) &&  $var >0) {                    $term  = get_term_by( 'id' , $var , $tax_slug );                    $var  =  $term ->slug;               }           }       }        return   $query ;   }   add_action(  'restrict_manage_posts' ,  'work_restrict_manage_posts'  );   add_filter( 'parse_query' , 'work_convert_restrict' ); 

 

查看更多关于WordPress自定义内容类型列表中分类(custom taxono的详细内容...

  阅读:53次