WordPress自定义内容类型列表中分类(custom 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');
时间: 2024-10-16 08:45:24

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

wordpress判断当前文章是否为自定义内容类型

先来看WordPress自定义类型实例 除了以上的保留文章类型外,为了满足多样化需求,我们可以自定义一些文章类型,例如:公告.视频.专题等等.自定义文章类型的实际用途很广,可以制作出复杂多变的表现形式.先来看看一个简单自定义类型的例子:  代码如下 复制代码 add_action( 'init', 'create_post_type' ); function create_post_type() {  register_post_type( 'acme_product',   array(   

如何让wordpress自定义文章类型支持置顶功能

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近开发一个wordpress淘宝客主题,应客户要求,需要做一个店铺推广.这个店铺推广需要上首页,也就是说只有提供了赞助的的店长的链接才可以在首页展示.为了达到这个目的,笔者提供的解决方案是采用置顶功能.店铺采用wordpress自定义文章类型.然而问题来了,wordpress自定义文章类型默认并不支持置顶功能.为此我们可以通过一个插件来实现

详解WordPress中分类函数wp_list_categories的使用_php技巧

wp_list_categories 函数是 WordPress 中用来罗列系统中分类的函数,该函数拥有许多控制输出的参数,今天突然被一个朋友问到,所以就大概整理了一下. 因为 WordPress 中内置扩展的小工具功能, 所以我们不经任何函数就可以在边栏或是其他我们想要的位置显示一个分类列表, 所以wp_list_categories函数就很少有人用到, 该函数使用起来有点类似于wp_list_bookmarks, wp_list_categories 描述wp_list_categories

url-wordpress自定义文章类型固定链接的问题

问题描述 wordpress自定义文章类型固定链接的问题 ?遇到一个问题请教下,我在wordpress建立了一个自定义文章类型store 在固定链接这里出现了问题,如果固定链接设置成 /archives/%post_id% 的时候,store归档页面变成了 /archives/store ,URL中多了一个archives,如果设置成其他的就会正常的是/store/ 这种格式.现在我想用/archives/%post_id%这种固定链接,要怎么将store归档页面URL中的archives去掉呢

SharePoint 2013 图文开发系列之创建内容类型

SharePoint内容类型,是很有特色的,就好比发布新闻,同在一张列表里,可以由内容类型区分图片新闻.文字新闻等,顾名思义,就是在一张列表里发布不同类型的项目. 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,如下图: 3.添加新项,选择内容类型,如下图: 4.选择继承的父内容类型,如下图: 5.修改内容类型的Feature文件,如下图: 6.查看内容类型的xml文件,如下图: 7.内容类型的可视化界面,我们可以在这里修改,也可以修改上一步

SharePoint 2010的内容类型集线器 (Content Type Hub)

在SharePoint 2007中,我们可以在网站集中定义或定制内容类型,然后在网站集里面的所有网站中使用这些内容类型,内容类型提供了一种集中管理数据与信息类型的方式,使得信息的结构定义,与信息的实际存储能够分开.但是在2007版本中,内容类型并不能被跨网站集使用.如果我们希望所有网站集都能使用同一个定义的内容类型,就必须将其封装为Solution Package,部署到各个Web应用程序当中. SharePoint 2010为了让管理员可以方便的在整个服务器场范围中共享同一组内容类型,新增了内

SharePoint 2013 App开发中自定义网站栏,内容类型及列表

打开vs2012新建项目. 开发中自定义网站栏,内容类型及列表-sharepoint自定义列表"> 选择Sharepoint hosted模式. 一个app开发的项目就创建好了. 创建网站栏 1.右键项目>添 加>新建项>Site column 创建一个网站栏 2.在element.xml中添加以下 字段. <?xml version="1.0" encoding="utf-8"?> <Elements xmlns

让WordPress搜索结果包括自定义文章类型的内容

如果你的WordPress站点添加了自定义文章类型,请记得让WordPress默认搜索支持自定义文章类型,即可以搜索自定义文章类型的内容.实现的方法很简单,将下面的代码添加到主题的functions.php 文件中即可: 让搜索支持自定义文章类型  代码如下 复制代码 function searchAll( $query ) {   if ( $query->is_search ) { $query->set( 'post_type', array( 'post','books', 'prod

MOSS 2010 自定义字段类型,创建栏成功,但是打开添加列表内容出现错误,请问是怎么回事?

问题描述 要实现的自定义字段类型功能是,自定义一个可以验证Email格式的多行文本框.我贴出来我的开发过程:首先,我创建了一个空的sharepoint项目,命名为:ITSM.CustomFields第二步,添加三个类文件,Email.Field.cs,Email.Field.Value.cs,Email.FieldControl.cs第三步,添加UserControl,EmailFieldRendering.ascx第四步,添加xml文件,fldtypes_Email.xml最后我把第三步,第四