こんにちは、
とてもラフなものですが、動作確認できたので貼り付けておきます。
functions.phpに追加してください。
新規投稿時、うまくいくと、カテゴリ一覧タブの下にテキストフィールドが出来るので、
そこに、カテゴリの一部を入力すると、フィルタされると思います。
add_action("admin_head-post-new.php", "my_filterd_categories");
function my_filterd_categories(){
?>
<script>
// Copyright (c) 2010 Kilian Valkhof
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
(function ($) {
// custom css expression for a case-insensitive contains()
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
function listFilter(header, list) { // header is any element, list is an unordered list
// create and add the filter form to the header
var form = $("<form>").attr({"class":"filterform","action":"#"}),
input = $("<input>").attr({"class":"filterinput","type":"text"});
$(form).append(input).appendTo(header);
$(input)
.change( function () {
var filter = $(this).val();
if(filter) {
// this finds all links in a list that contain the input,
// and hide the ones not containing the input while showing the ones that do
$(list).find("label:not(:Contains(" + filter + "))").parent().slideUp();
$(list).find("label:Contains(" + filter + ")").parent().slideDown();
} else {
$(list).find("li").slideDown();
}
return false;
})
.keyup( function () {
// fire the above change event after every letter
$(this).change();
});
}
//ondomready
$(function () {
listFilter($("#category-tabs"), $("#categorychecklist"));
});
}(jQuery));
</script>
<?php
}
ご返信ありがとうございます!!
わざわざソースまで教えて頂けるとは・・・
実際に試してみたところ、通常の投稿では希望通りの動作が確認できました!
しかし、カスタム投稿の投稿画面では適用されませんでした。
これをカスタム投稿で動かす事は可能でしょうか?
度々申し訳ございませんが、どうかよろしくお願い致します。
私もこの機能が欲しくて悩んでました!
nobitaさん、ありがとうございます。
私は「カスタム投稿」と、それにヒモづけてる「カスタムタクソノミー」で使用するので
//ondomready
$(function () {
listFilter($("#category-tabs"), $("#categorychecklist"));
});
の部分を下記のようにしたら動きました。
カスタムタクソノミーは book とした場合です。
//ondomready
$(function () {
listFilter($("#book-tabs"), $("#bookchecklist"));
});
これで投稿時のタクソノミー付けが楽になりそうです。
御質問された toakts0024 さん
お答え下さいました nobita さん
ありがとうございました。
ご返信ありがとうございます!
taku-kさんのやり方で記述を変えたら無事実現する事が出来ました!
taku-kさん
nobitaさん
本当にありがとうございました!