如何让用户在前台选择帖子类别?

时间:2018-04-14 作者:Mohammad Anbarestany

我已经为分类帖子添加了一个自定义分类法,颜色不同于它们的主类别,我想让用户在前端访问分类帖子,我不知道如何做到这一点。。。是否有创建表单来执行此操作?

    function color() {

    $labels = array(
        \'name\'                       => \'Colors\',
        \'singular_name\'              => \'Color\',
        \'menu_name\'                  => \'Color\',
        \'all_items\'                  => \'All Items\',
        \'parent_item\'                => \'Parent Item\',
        \'parent_item_colon\'          => \'Parent Item:\',
        \'new_item_name\'              => \'New Item Name\',
        \'add_new_item\'               => \'Add New Item\',
        \'edit_item\'                  => \'Edit Item\',
        \'update_item\'                => \'Update Item\',
        \'view_item\'                  => \'View Item\',
        \'separate_items_with_commas\' => \'Separate items with commas\',
        \'add_or_remove_items\'        => \'Add or remove items\',
        \'choose_from_most_used\'      => \'Choose from the most used\',
        \'popular_items\'              => \'Popular Items\',
        \'search_items\'               => \'Search Items\',
        \'not_found\'                  => \'Not Found\',
        \'no_terms\'                   => \'No items\',
        \'items_list\'                 => \'Items list\',
        \'items_list_navigation\'      => \'Items list navigation\',
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
    );
    register_taxonomy( \'color\', array( \'post\' ), $args );

}
add_action( \'init\', \'color\', 0 );

1 个回复
最合适的回答,由SO网友:Mohammad Anbarestany 整理而成

以下是操作方法:

    <form action="#" method="post">
        <input type="checkbox" name="checklist[]" value="1"><label>Blue</label>
        <input type="checkbox" name="checklist[]" value="2"><label>Red</label>
...
        <input type="submit" name="submit" value="submit"/>
    </form>
    <?php
        if(isset($_POST[\'submit\'])){
            if(!empty($_POST[\'checklist\'])){
                $selectArr = array();
                foreach($_POST[\'checklist\'] as $selected){
                    $selectedInt = (int)$selected;
                    $selectArr[] = $selectedInt;
                    wp_set_object_terms( $thePostId, $selectArr, \'color\');
                }
            }
        }
    ?>
其中,输入标记中的值是分类ID(颜色ID)

我使用我的主题函数来定义当前的帖子ID($thePostId)

结束

相关推荐

向Posts表中添加一列是个好主意吗?

我正在为一个需要两种自定义帖子类型的客户制作一个自定义主题。我想将它们连接在一起(这是一个一对多连接),因此考虑在posts表中添加一列来存储连接。当然,我已经读到,我可以使用posts\\u meta表来存储一些帖子的额外信息,但公平地说,这是一种迂回的方式,尤其是如果您可以将信息存储在一列中。所以我想知道在标准的wp posts表中添加一列是否是一个好主意。