私はユーザーが投稿を投稿できるようにするための簡単なフロントエンドフォームを作成しました - ここのチュートリアルと同様 - http://voodoopress.com/ 私はまた私が私のフォームのテキスト入力ボックスとして持っているカスタム分類法のカップルを持っています。これはすべてうまくいっていますが、とにかく私はポストタイトルと既存の値を自動提案する分類法を含むすべてのフィールドを持つことができるかどうか疑問に思いましたか?
ありがとう
これが最も良い方法であるかどうかわかりませんが、それは私にとってはうまくいきました。私は jquery-ui-autocomplete - とJSON APIプラグインの組み合わせを使用しました
まず上記のリンクから必要なjsファイルをダウンロードしてください。 Googleライブラリのjqueri-uiを使用しました。JSON APIプラグインのインストールとアクティブ化
私のカスタム投稿フォームの「title」入力フィールドに入力するときに、私は次に自動提案するために次のJavaScriptを使いました
<script type="text/javascript">
$(function() {
$('#title').autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://example.com/?json=1&include=title",
dataType: "json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function( data ) {
response( $.map( data.posts, function( item ) {
return {
label: item.title,
value: item.title
}
}));
}
});
},
minLength: 2,
});
});
</script>
次のステップは、これをカスタム分類法で機能させることです。
私はこれについて少し掘り下げて過ごしました、そして、私はあなたの解決策を見つけたと思います! get_terms()
のname__like
パラメータが今後の道になると思われます。 name__like
のクエリは次のとおりです(/wp-includes/taxonomy.php
の1304行目から):$wpdb->prepare( " AND t.name LIKE %s", $name__like . '%' );
。あなたがそれをname__like
パラメータとして与えたものは何でも取り、それにSQLワイルドカード、%
を追加します。これはそれがあなたがそれを供給したもので始まるすべてのものを探すことを意味します。
それはほとんどデータを取得することで解決します...残念ながらそれはjavascriptに渡すことを処理しません。その挿入方法を正確にどのように処理しているかはわかりませんが、名前だけを含む配列を渡して、「新しい用語を作成するのか、古い用語を使用するのですか」の区別をさせます。提出時に処理されます。これのどの部分が明確でないかを私に言うならば(私はいくらかあるだろうと確信しています)、私はあなたにいくつかの疑似コードをあげることを試みることができます。