web-dev-qa-db-ja.com

テキストタブを削除

ユーザーのテキストタブを削除または無効にする機能はありますか。

きれいなCMSを作るのに十分なコードがここにありますが、これだけでは見つけられません。

Screenshot

2
Arnolddew

これには2つのステップが必要です。

1)まず、エディタタブを非表示にする必要があります。これはCSSを使用して簡単に実行できます。そのために、管理者ヘッドにCSSを出力します。

function hide_editor_tabs() {
    global $pagenow;

    // Only output the CSS if we're on the edit post or add new post screens.
    if ( ! ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) {
        return;
    }

?>
<style>
    .wp-editor-tabs {
        display: none;
    }
</style>
<?php

}
add_action( 'admin_head', 'hide_editor_tabs' );

OPが要求するように、片方のタブだけを隠すことができますが、実際には両方を隠すべきです。合計2つしかないため、1つだけを非表示にしてから1つのタブを残しても意味がありません。

2)次に、ビジュアルエディタをデフォルトにする必要があります。手順1でタブを非表示にしたので、ユーザーはデフォルトから切り替えることはできません。

function force_default_editor() {
    return 'tinymce';
}
add_filter( 'wp_default_editor', 'force_default_editor' );

代わりにテキストエディタを強制したい場合は、ステップ2でreturn 'tinymce';return 'text';に変更するだけです。

1
Philip Newcomer

受け入れられた答えについての私のコメントに加えて、あなたもこれをするべきです。さらに進んで、jQuery .hideまたはcssを使用してフィールドを管理することもできます。

// This updates the database on profile update to ensure rich_editing is selected ture 
function disable_rich_editing_profile_update() {     
    global $wpdb; 
    $wpdb->query("UPDATE " . $wpdb->prefix . "usermeta SET meta_value = true WHERE meta_key = 'rich_editing'");
} 
add_action('profile_update', 'disable_rich_editing_profile_update', 10, 2); add_action('user_register', 'disable_rich_editing_profile_update', 10, 2);


// Optionally hide the fields as well from the end user
function remove_profile_editor_css() { 
    if (is_admin() { 
        ?>
        <style type="text/css"> 
            #your-profile > table:nth-child(5) > tbody > tr:nth-child(1) {                 
                display: none; 
            }
        </style> 
        <?php 
    } 
} 
add_action( 'admin_head-profile.php', 'remove_profile_css' );
0
Bryan Willis