web-dev-qa-db-ja.com

Wp_category_checklist()を使用する方法?

私は最近、このようなカテゴリのドロップダウンリストを挿入できることを発見しました。

define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
wp_dropdown_categories( array(
    'child_of'         => 0,
    'class'            => 'postform', 
    'depth'            => 0,
    'echo'             => 1,
    'exclude'          => '', 
    'hide_empty'       => false, 
    'hide_if_empty'    => false,
    'hierarchical'     => true,
    'id'               => '',
    'name'             => 'cat-dropdown', 
    'order'            => 'ASC',
    'orderby'          => 'name', 
    'selected'         => 0, 
    'show_count'       => 0,
    'show_option_all'  => '', 
    'show_option_none' => __('None'),
    'tab_index'        => 0, 
    'taxonomy'         => 'format',
) );

これは素晴らしいことですが、複数のカテゴリを選択したい場合はどうすればよいですか。

私はwp_category_checklist()に出会い、このコードを試しました:

function wp_category_checklist( 
    $post_id = 0, 
    $descendants_and_self = 0, 
    $selected_cats = false, 
    $popular_cats = false, 
    $walker = null, 
    $checked_ontop = true 
) {
    wp_terms_checklist( $post_id, array(
        'taxonomy'             => 'category',
        'descendants_and_self' => $descendants_and_self,
        'selected_cats'        => $selected_cats,
        'popular_cats'         => $popular_cats,
        'walker'               => $walker,
        'checked_ontop'        => $checked_ontop
    ) );
}

しかし、何も出力されません。

サイドバーや投稿内ではなく、空白のページで自分のカテゴリのリストを取得しようとしています。それは可能ですか?

1
Sweepster

これが私が終わった答えです:

$select_cats = wp_dropdown_categories( array( 'echo' => 0 ) );
$select_cats = str_replace( "name='cat' id=", "name='cat[]' multiple='multiple' id=", $select_cats );
echo $select_cats;

それは私の質問に従って複数選択することができる私のカテゴリのリストを表示します。これはwp_dropdown_categoriesのハックですが、うまくいきます。

2
Sweepster

関数wp_terms_checklistはファイル/wp-admin/includes/template.phpで定義されているので、Wordpressの管理者側でのみ利用可能です。

1
Mike

チェックボックスで複数のカスタム分類法を選択したい場合。そのコードを使うことができます。

 $html .= wp_dropdown_categories( array(
                        'taxonomy' => 'taxonomy_name',
                        'hierarchical' => 0,

                    ) );


$html = str_replace( "form id=", "form multiple='multiple' id=", $html );
$html = str_replace( "select", "span", $html );
$html = str_replace( "option class=", "input type='checkbox' class=", $html );
$html = str_replace( "option", "", $html );
$html = str_replace( "</>", "<br/>", $html );

echo $html;

そしてTfあなたはチェックボックスで複数のカテゴリを選択したいです。そのコードを使うことができます。

$html = wp_dropdown_categories( array( 'echo' => 0, 'hierarchical' => 0 ) ); // Your Query here

$html = str_replace( "form id=", "form multiple='multiple' id=", $html );
$html = str_replace( "select", "span", $html );
$html = str_replace( "option class=", "input type='checkbox' class=", $html );
$html = str_replace( "option", "", $html );
$html = str_replace( "</>", "<br/>", $html );

echo $html;
0
Shapon Pal