编辑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);