自定义分类的自定义字段??有人能解释一下为什么吗?

时间:2011-10-08 作者:lexpresso

我正在为我的项目实现各种自定义分类法,我遇到了自定义分类法的自定义字段的概念,这让我感到困惑。我认为自定义字段只是与帖子关联的自定义字段,而不是分类法。有人能解释一下这种关系以及它是如何使用的吗?谢谢

1 个回复
SO网友:Jamal Jama

自定义分类法的自定义字段只不过是自定义模板。例如,可以删除post_tag 分类法通过remove_meta_box() 函数并通过添加自定义模板add_meta_box() 作用

Examples

删除标记模板:

/* Remove default post tags template. */
add_action( \'admin_menu\' , \'example_remove_taxonomy_template\' );    

/**
 * Remove taxonomy template
 * 
 * Removes the defualt meta tags template, in this example, we don\'t want
 * people to add their own tags, so the whole purpose of this function is 
 * to remove the functionality that allows people to type in their own tags.
 */
function example_remove_taxonomy_template() {
    remove_meta_box( \'tagsdiv-post_tag\' , \'post\' , \'side\' ); 
}
以上内容删除了Tags 盒我们将再次添加它,但我们将更改post_tag 分类学在这种情况下,我们将删除人们用来键入新标记术语的输入栏,在我们的新模板中,人们只能从下拉列表中选择预定义的标记。

模板:

/** 
 * Custom tags template.
 * 
 * Creates a custom taxonomy template. Poeple will no longer be able to type new rubbish tags,
 * they should use the existing ones ;)
 */
function example_tags_template() {

    global $post;

    $example_tags = array();

    /* Set the post ID if not provided. */
    $post_id = $post->ID;

    /* Get the \'given\' terms attached to the given post ID. */
    $terms = get_the_terms( $post_id, \'post_tag\' );

    /* Return the format of each taxonomy. */
    if ( $terms && ! is_wp_error( $terms ) ) {

        foreach( $terms as $term )  
            $example_tags = $term->$format;
    }
    $example_tag = join( ", ", $example_tags );

    /* Open the container div of the taxonomy. */
    echo\'<div class="input-text-wrap" style="margin:5px 0 0">\';

    /* Get the terms in a select input field. */
    wp_dropdown_categories( 
        array(
            \'taxonomy\'      => \'post_tag\',
            \'hide_empty\'    => 0,
            \'name\'          => "example[post_tag]",
            \'selected\'      => ( $example_tag ? $example_tag : 0 )
        ) 
    );

    echo\'</div>\';
}
正如您在上面的代码中所看到的,自定义post_tag 模板已经准备好了,我们只需要将其挂接到WordPress,下面的代码就可以完成这项工作。

/* Add modified custom template post tags taxonomy. */
add_action( \'add_meta_boxes\', \'example_add_taxonomy_template\' );

/**
 * Add taxonomy template
 * 
 * Adds post tags taxonomy with custom taxonomy template. People should select 
 * post tags instead of typing them.
 */
function example_add_taxonomy_template() {
    add_meta_box( \'post_tag\', \'Choose a Tag\', \'example_tags_template\', \'post\', \'side\', \'low\' );
}
正如您在上面的示例中所看到的,您可以修改内置元框的默认模板,甚至可以删除后摘录元框并重新附加以启用所见即所得支持。

上面的代码并不是最好的示例,我已经动态编写了这些函数,但当我希望客户选择将其内容放在首页的位置时,我已经多次使用了此功能;e、 g.幻灯片区、功能区等。。。

干杯

结束

相关推荐