特定于页面属性模板的分类

时间:2011-11-11 作者:roikles

编辑2:

所以在这方面做了很多工作后,我找到了一个解决方案,它确实允许我按照页面模板过滤分类法,但它不是很枯燥,也不是很灵活。理想情况下,我希望使其更加灵活,以便可以使用它链接多个模板和分类法。

我遇到的问题是,如果在函数外部定义分类法数组,即使我将其作为参数传递,它也无法工作。我有一天,我已经看了这么长时间的代码,我看不见树木的树木。任何人都可以提供一些重构的建议,使其更加干燥。

谢谢

function create_taxonomy($name,$type = \'page\') {
    // create a new taxonomy
    register_taxonomy(
        strtolower( str_replace(\' \',\'-\', $name ) ),
        $type,
        array(
            \'label\'     => __( $name ),
            \'sort\'      => true,
            \'args\'      => array( \'orderby\' => \'term_order\' ),
            \'rewrite\'   => array( \'slug\' => strtolower( str_replace(\' \',\'-\', $name ) ) )
        )
    );

    //return strtolower(str_replace(\' \',\'-\', $name));

}


function case_study_taxonomy($template,$taxonomies){

    $current_template = get_post_meta($_GET[\'post\'], \'_wp_page_template\', true);

    if ($current_template == $template){

        $taxonomies = array(

            create_taxonomy(\'Project Type\'),
            create_taxonomy(\'System Finishes\'),
            create_taxonomy(\'Client\'),
            create_taxonomy(\'System Installer\'),
            create_taxonomy(\'Architect\'),
            create_taxonomy(\'Partnering Contractor\'),
        );

        foreach($taxonomies as $taxonomy){

            add_action( \'admin_menu\', $taxonomy );

        }

    }   

}

case_study_taxonomy(\'template-case-study.php\',$taxonomies);

1 个回复
SO网友:Milo

我不完全确定我是否理解你对事情如何设置的解释,或者这是否是你尝试做什么的最佳方式,但要回答你的具体问题-

为页面选择的模板存储在post meta中的键下_wp_page_template, 您可以检查此键以查看是否选择了案例研究模板,否则请使用remove_meta_box 隐藏所有其他页面的分类。

结束

相关推荐