Yoast SEO Post Metaboxを削除する[終了]


7

Yoasts SEOプラグインは、ポスト編集画面にメタボックスを追加します。私は編集者以上ではないユーザーのためにこれを削除しようとしています。

remove_meta_box$ wpseo_metaboxのアクションを削除しようとしてadmin_initを呼び出してみましたが、役に立ちませんでした。

ユーザーの介入を必要とせずにこのメタボックスを削除するにはどうすればよいですか(ユーザーはメタボックスの存在を知らないはずなので、画面オプションをクリックすることはできません)


なぜそれを削除したいのですか?具体的には、彼らにできるようにしたくないものはありますか?
Joost de Valk

2
SEOが何であるかを知らないユーザーのクラスがあるので、物事は彼らのために簡略化する必要があります(より多くの場合、現金を持つクライアントはそれを要求します)。とにかく、編集者レベルの特権を持つ誰かが投稿をモデレートして承認するので、最下位レベルのユーザーが最初のコンテンツを作成するよりも、SEOの部分を行うほうがよいでしょう。
トムJノーウェル

そして、これは実際には回答ではなくコメントであり、他の人があなたに反対票を投じたくないでしょう
トムJノウェル

回答:


16

上のremove_meta_boxメモです:

メタボックスは追加されるまで削除できないため、remove_meta_box()の呼び出しが正しい順序で行われるようにすることが重要です。

WordPress SEOはadd_meta_boxesアクションにメタボックスをデフォルトの優先度-10で追加します。これは後admin_initに実行されるため、削除されません。代わりにadd_meta_boxes、にフックする必要がありますが、優先度は低くなります(11、12など)。

function mamaduka_remove_metabox() {
    if ( ! current_user_can( 'edit_others_posts' ) )
        remove_meta_box( 'wpseo_meta', 'post', 'normal' );
}
add_action( 'add_meta_boxes', 'mamaduka_remove_metabox', 11 );

2

管理者以外のアカウントのメタボックスを削除します。

add_filter ( 'manage_edit-post_columns', 'rkv_remove_columns' );
function rkv_remove_columns( $columns ) {

   if ( ! current_user_can('administrator') ) { 

    unset( $columns['wpseo-score'] );
    unset( $columns['wpseo-title'] );
    unset( $columns['wpseo-metadesc'] );
    unset( $columns['wpseo-focuskw'] );
}
    return $columns;
}

イベントカレンダープラグインのイベントでは機能しません。ただし、通常の投稿では機能しました。これがカスタム投稿タイプで機能するかどうかはわかりません。
Radmation 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.