Удалите метабокс поста SEO Yoast [закрыто]

7

Плагин Yoasts SEO добавляет метабокс на экран редактирования поста. Я пытаюсь удалить это для пользователей, которые не являются редакторами или выше.

Я пытался remove_meta_boxвызвать вызов admin_init, пытаясь удалить действие для $ wpseo_metabox, но безрезультатно.

Как удалить этот метабокс, не требуя вмешательства пользователя (пользователь никогда не должен знать, что метабокс существует, поэтому нажатие на опции экрана не вариант)

Том Дж Новелл
источник
Смею спросить, почему вы хотите удалить его? Есть что-то конкретно, что вы не хотите, чтобы они могли сделать?
Joost de Valk
2
Поскольку есть класс пользователей, которые не имеют ни малейшего представления о том, что такое SEO, для них все должно быть упрощено (более точно, чтобы клиент запрашивал деньги). Кто-то с привилегиями на уровне редактора будет модерировать и одобрять сообщение в любом случае, поэтому лучше, если они сделают часть SEO, а не пользователи нижнего уровня, пишущие исходный контент.
Том Дж. Новелл
И это действительно должен быть комментарий, а не ответ, он не хотел бы, чтобы другие люди понижали вас голосом
Том Дж. Новелл

Ответы:

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 );
Mamaduka
источник
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;
}
Amsbundem
источник
Не работает с событиями из плагина календаря событий - это работало, однако, для обычных сообщений. Я не уверен, работает ли это на пользовательских типах сообщений.
Радмация