web-dev-qa-db-ja.com

カテゴリを常に選択する方法

私はデフォルトのカテゴリの特定の用語を常に選択させるための関数を書くことを試みています。

ユーザーが新しい投稿を書いているとき、チェックボックスという用語はチェックされるべきであり、彼はそれをアンチェックすることができないはずです。

出来ますか?

2
She Hulk

これはjQueryを使って行うことができます。

この例では、既存の投稿を編集するとき(admin_head-post.php)と新しい投稿を書くとき(admin_head-post-new.php)に修飾子が表示されます。

このフックは投稿、ページ、カスタム投稿タイプで機能するため、正しい投稿タイプを確認するための条件があります。

[最もよく使われる]タブは非表示になっています。そのタブのカテゴリに対処するには、識別子#in-popular-category-CAT_IDを使用します。

add_action( 'admin_head-post-new.php', 'wpse_72603_default_categories' );
add_action( 'admin_head-post.php', 'wpse_72603_default_categories' );

function wpse_72603_default_categories()
{
    global $current_screen;

    // If not our post type, do nothing
    if( 'post' != $current_screen->post_type )
        return;
    ?>
    <script language="javascript" type="text/javascript">
        jQuery(document).ready(function($) 
        {
            // Hide the "Most used" tab
            $('#category-tabs .hide-if-no-js').remove();

            // Tick the checkboxes of categories 3 and 9
            $('#in-category-3, #in-category-9').attr('checked', true);

            // Disable the clicks in categories 3 and 9
            $('#in-category-3, #in-category-9, #in-popular-category-9')
            .click(function() { return false; });
        });
    </script>
    <?php
}

興味のあるプラグイン: カテゴリチェックリストツリー

投稿編集画面で、投稿を保存すると、チェックしたカテゴリが一番上に表示され、カテゴリ階層が壊れていることがわかります。このプラグインはその「機能」を削除します。

2
brasofilo

私はjQueryを使ってカテゴリを選択するためにこのスクリプトを使いました。

wp-admin/post-new.phpの内側

$category_name_check = "My Category Name";
echo "<script type=\"text/javascript\">";
echo "jQuery( \"label:contains('$category_name_check') > input\" ).attr('checked', true)";
echo "</script>";

ここで$category_name_checkはチェックするカテゴリの名前です。

0
Cyberdelphos