简单代码为WordPress企业网站自定义分类指定默认目录
2012-12-31

对于一个WordPress开发者而言,你会用到很多WordPress二次开发的知识点,其中给主题添加自定义分类模式(Custom Taxonomy)是一个常用到的功能之一,尤其对于使用WordPress搭建企业网站来说,为产品增加产品的品牌、类型等等,均可以使用自定义分类法来实现。

该教程假设你已经为主题增加了自定义分类,且如果你不知道如何为主题添加自定义分类(注:您无法在管理后台创建自定义的分类法,只能是通过代码来实现相应的功能),请Google相关内容,或者去WordPress官方网站查看说明文档。

此时发布文章时,如果你没有选择自定义分类目录,则该分类中并不包含你刚刚发布的信息,而偏偏要求必须指定一个自定义分类中的目录,那么,如何避免这种情况呢?不要着急,偶米工作室向大家提供为自定义分类指定默认目录的方法,即将以下代码拷贝到function.php文件中,并根据自己的需要进行修改即可。

/**
 * Define default terms for custom taxonomies in WordPress 3.0.1
 *
 * @author    Michael Fields     http://wordpress.mfields.org/
 * @props     John P. Bloch      http://www.johnpbloch.com/
 *
 * @since     2010-09-13
 * @alter     2010-09-14
 *
 * @license   GPLv2
 */
function mfields_set_default_object_terms( $post_id, $post ) {
    if ( 'publish' === $post->post_status ) {
        $defaults = array(
            'post_tag' => array( 'taco', 'banana' ),
            'monkey-faces' => array( 'see-no-evil' ),
            );
        $taxonomies = get_object_taxonomies( $post->post_type );
        foreach ( (array) $taxonomies as $taxonomy ) {
            $terms = wp_get_post_terms( $post_id, $taxonomy );
            if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
                wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
            }
        }
    }
}
add_action( 'save_post', 'mfields_set_default_object_terms', 100, 2 );

将其拷贝到主题的function.php文件中后,将代码第15、16行根据需要进行修改,第15行是指文章(POST)默认的标签,第16行是指自定义分类monkey-faces默认的目录。

好了,偶米工作室为你讲解了如何通过代码为WordPress企业网站自定义分类指定默认目录,如果你有这方面的需要,可以和偶米工作室联系,让我们以专业的技术为你提供网站服务。

相关知识