web-dev-qa-db-ja.com

jQueryによる自動生成フロントエンドフォームフィールド

フロントエンドのフィールドからカスタム分類法で用語を自動生成しようとしています。ただし、次のコードを使用して文字を入力しようとすると、表示されるドロップダウンメニューがたくさんのブラックボックスになります(下のスクリーンショット)。任意の助けがいただければ幸いです。それ以上の情報が必要な場合はお知らせください。ありがとうございます。

<?php 
$args = array(
    'orderby'                => 'name',
    'order'                  => 'ASC',
    'hide_empty'             => false,
    'include'                => array(),
    'exclude'                => array(),
    'exclude_tree'           => array(),
    'number'                 => '',
    'offset'                 => '',
    'fields'                 => 'all',
    'name'                   => '',
    'slug'                   => '',
    'hierarchical'           => true,
    'search'                 => '',
    'name__like'             => '',
    'description__like'      => '',
    'pad_counts'             => false,
    'get'                    => '',
    'parent'                 => '0',
    'childless'              => false,
    'cache_domain'           => 'core',
    'update_term_meta_cache' => true,
    'meta_query'             => ''
);
$phpArray = get_terms( 'listing_taxonomy', $args );
?>
<script>
    $(function() {
    var availableTags = <?php echo json_encode($phpArray); ?>;
    $( "#tags" ).autocomplete({
      source: availableTags
    });
    });
</script>

enter image description here

Console.log(availableTags)を呼び出すと、次のようになります。 enter image description here

1
Christy

こんにちはオートコンプリートは、ソースがarray, URL string and function returnであることを期待しています。たとえあなたがJSONを与えたとしても、それはlabel and valueを持つべきです。 allフィールドを付けてget_termsを出力するだけなので、ここにはありません。

だから私は単にカテゴリの名前を返すことをお勧めします。フィールドをallからnamesに変更するとうまくいきます。

<?php 
$args = array(
    'orderby'                => 'name',
    'order'                  => 'ASC',
    'hide_empty'             => false,
    'include'                => array(),
    'exclude'                => array(),
    'exclude_tree'           => array(),
    'number'                 => '',
    'offset'                 => '',
    'fields'                 => 'names',
    'name'                   => '',
    'slug'                   => '',
    'hierarchical'           => true,
    'search'                 => '',
    'name__like'             => '',
    'description__like'      => '',
    'pad_counts'             => false,
    'get'                    => '',
    'parent'                 => '0',
    'childless'              => false,
    'cache_domain'           => 'core',
    'update_term_meta_cache' => true,
    'meta_query'             => ''
);
$phpArray = get_terms( 'listing_taxonomy', $args );
?>
<script>
    $(function() {
    var availableTags = <?php echo json_encode($phpArray); ?>;
    $( "#tags" ).autocomplete({
      source: availableTags
    });
    });
</script>
1
WPTC-Troop