jonnybojangles
  • 0
Эксперт

Как добавить способность к роли пользователя?

  • 0

Я управляю сетью WordPress и хотел бы добавить возможность пользователя unfiltered_html к уже предопределенной роли пользователя Admin. В стандартной установке WordPress учетная запись администратора уже имеет эту возможность, но в установке MU эта возможность предоставляется только суперадминистраторам. Роли и возможности WordPress.

Как увеличить роль администратора из темы или плагина?

Share
  1. wordpress.org/extend/plugins/unfiltered-mu похоже, что это может помочь. Но это работает для администраторов и редакторов. Если это нежелательно, возможно, код можно немного изменить?

    • 0
  2. Вы можете использовать класс WP_Role,

    // get the the role object
    $role_object = get_role( $role_name );
    
    // add $cap capability to this role object
    $role_object->add_cap( $capability_name );
    
    // remove $cap capability from this role object
    $role_object->remove_cap( $capability_name );
    

    Таким образом, чтобы ответить на ваш первоначальный вопрос о том, как разрешить администраторам вводить теги SCRIPT и IFRAME в контент публикации, вы ищете возможность «unfiltered_html», которая в Multisite предоставляется только суперадминистраторам.

    // get the the role object
    $admin_role = get_role( 'administrator' );
    // grant the unfiltered_html capability
    $admin_role->add_cap( 'unfiltered_html', true );
    

    или вы можете запустить это один раз в своих функциях:

    /* Roles & Capabilities */
    add_role('professional', 'Professional User', array(
        'read' => true, // True allows that capability, False specifically removes it.
        'edit_posts' => true,
        'delete_posts' => true,
        //'edit_published_posts' => true,
        //'publish_posts' => true,
        //'edit_files' => true,
        'upload_files' => true //last in array needs no comma!
    ));
    
    • 0
  3. Чтобы позволить другой роли, отличной от Суперадминистратора или Администратора (в зависимости от того, является ли установка WordPress сетевой или MU-экземпляром) добавлять нефильтрованный HTML-код в сообщение или комментарий, необходимо удалить фильтр WordPress KSES.

    Проверьте, есть ли у пользователя определенные возможности.

    if ( current_user_can( 'unfiltered_html' ) ) { … }
    

    Если да, то удалите KSES

    kses_remove_filters();
    

    Эта функциональность уже реализована в unfiltered-mu, что позволяет администраторам и редакторам добавлять нефильтрованный html.

    • 0

Оставить ответ

You must login to add an answer.