it-swarm.cn

自定义帖子类型 - 分类标准下拉菜单?

我创建了一个自定义帖子类型,并为此自定义帖子类型添加了各种元框/字段。除了一个元素外,一切都很好......

我没有使用默认界面来选择分类法,而是希望只有一个下拉菜单供用户选择。

这里的想法是使管理员能够添加可以集中管理的分类法元素,但是对于特定的帖子只能与一个分类法相关联。

此外,我更愿意将此下拉列表添加到我现有的元框中。

有没有人碰巧有任何示例代码可以让我完成这项任务?

5
NetConstructor.com

我在另一篇文章中回答了这个问题: 保存分类标准术语

1
NetConstructor.com

这就是我这样做的方式。

<?php $tax = get_object_taxonomies('TAXONOMY_NAME');
    $taxterms = get_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' );
?>
<select name='tax' id='tax'>
    <option value='' <?php if (!count( $names )) echo "selected";?>>Select Term</option>
    <?php 
    foreach ( $taxterms as $term ) { 
        echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; 
    } ?>
</select>
4
jaredwilli

我没有代码来执行此操作,但它应该很简单:创建一个名为tax_input[your_taxonomy_name]的下拉列表,如果您的分类法是分层的(如类别),则值为id,如果不是,则为值(如标记)。如果您使用此名称,我认为它会自动保存,无需您提供额外的代码。您可以使用wp_dropdown_categories函数创建下拉列表,并使用应选择的分类术语传递selected选项。创建元框的回调函数获取$post参数,因此您可以从那里获取当前的分类术语。

要禁用通常添加的元框,可以在创建分类时将show_ui设置为false,或者在绘制之前删除元框(我认为add_meta_boxes钩子是个好地方)。如果它不是分层的,它将具有id tagsdiv-your_taxonomy_name,如果是,则为your_taxonomy_namediv

1
Jan Fabry