WOLF - WordPress Posts Bulk Editor and Manager Professional

«No any post type permitted to edit for site editors»: cómo solucionarlo

El mensaje Ningún tipo de contenido permitido para editar por los editores del sitio. Consulta los detalles con los administradores del sitio (No any post type permitted to edit for site editors. Ask please site administrators for details!) significa que WOLF trata al usuario conectado como editor del sitio y no encuentra ningún tipo de contenido que los editores del sitio puedan editar. La página no muestra nada más. En la mayoría de los casos la solución es un único ajuste que un administrador rellena una sola vez. Cuando es un administrador quien ve el mensaje, o cuando un rol personalizado no puede abrir WOLF en absoluto, la causa está en cómo están configurados los roles del usuario. Esta página cubre los tres casos.

Qué significa «No any post type permitted to edit for site editors»

WOLF clasifica a los usuarios en dos grupos:

  • Los administradores trabajan con todos los tipos de contenido y todas las columnas, y ven la pestaña Campos meta (Meta Fields) y los ajustes que controlan a los editores del sitio.
  • Los editores del sitio son todos los demás usuarios que pueden abrir WOLF, ante todo el rol editor. Solo reciben los tipos de contenido indicados en Ajustes (Settings) → Tipos de contenido para editores del sitio (Site editors post types), y solo las columnas que un administrador ha marcado como visibles para ellos.

El campo Tipos de contenido para editores del sitio (Site editors post types) está vacío en una instalación nueva. Una lista vacía significa cero tipos de contenido, así que el primer editor que abra WOLF Bulk Editor verá el error hasta que un administrador rellene el campo.

Solución: rellenar «Site editors post types»

  1. Inicia sesión como administrador y abre WOLF Bulk Editor → Ajustes (Settings).
  2. En la columna Ajustes generales (General settings), busca Tipos de contenido para editores del sitio (Site editors post types).
  3. Introduce los slugs de los tipos de contenido con los que pueden trabajar los editores, separados por comas, por ejemplo post,page.
  4. Haz clic en Guardar todos los ajustes (Save all settings). El editor recarga la página de WOLF y obtiene la tabla.

Cuatro detalles deciden si funciona:

  • Slugs, no nombres. Introduce page, no Páginas (Pages). El slug de un tipo de contenido personalizado está en la dirección de su pantalla de listado: edit.php?post_type=property significa property.
  • Sin espacios. WOLF compara el texto exactamente. Con post, page, el segundo elemento empieza con un espacio, no coincide con nada y los editores solo obtienen entradas. Un síntoma típico: el editor selecciona páginas en el selector de tipo de contenido y la tabla vuelve una y otra vez a las entradas.
  • El primer slug es el predeterminado. Cuando el tipo de contenido actual de un editor no está en la lista, WOLF lo cambia al primer slug.
  • Solo los tipos que WOLF ya lista. El campo reduce la lista de tipos de contenido que ve un administrador; no puede ampliarla. Un tipo de contenido que su plugin registró como no público debe añadirse antes para todos, como se describe en el tipo de contenido personalizado que no aparece en el editor masivo.

A continuación, decide qué pueden cambiar los editores. En la pestaña Ajustes (Settings), cada columna tiene la casilla visible para el editor del sitio (visible for the site editor); las columnas sin ella quedan ocultas a los editores y estos no pueden modificarlas, ni en la tabla ni de forma masiva. Consulta cómo limitar lo que puede editar un editor del sitio. Los campos meta solo los añaden los administradores: los editores no tienen la pestaña Campos meta (Meta Fields).

Roles personalizados: sin menú de WOLF, o «no tienes permiso para acceder a esta página»

WOLF se abre para los usuarios que tienen el rol administrador o editor, o un rol añadido mediante uno de dos filtros. Los roles creados por plugins de membresía, cursos, foros o gestión de roles no están en esa lista, de modo que sus usuarios no tienen el menú WOLF Bulk Editor y el enlace directo responde con el mensaje de WordPress Lo siento, no tienes permisos para acceder a esta página (Sorry, you are not allowed to access this page). El menú también exige la capacidad publish_posts, que tienen los editores y los autores pero no los colaboradores.

Averigua primero el slug del rol: en Usuarios (Users), haz clic en el rol que aparece encima de la lista de usuarios; la dirección termina en ?role= y el slug. Después elige el filtro que corresponda a lo que debe hacer el rol.

Derechos completos dentro de WOLF: wpbe_permit_special_roles

Un rol añadido aquí se trata dentro de WOLF como un administrador: todas las columnas, la pestaña Campos meta (Meta Fields) y los ajustes de los editores del sitio. Concédelo solo a roles en los que confíes para gestionar todo el contenido del sitio.

/*
 * WOLF: give the role "content_manager" administrator rights in the bulk editor.
 * Child theme functions.php or a code snippets plugin.
 */
add_filter('wpbe_permit_special_roles', function ($roles) {
    $roles[] = 'content_manager';
    return $roles;
});

Mantén administrator en la matriz: el filtro sustituye la lista predeterminada, así que una función que devuelva solo tu rol personalizado deja fuera a los administradores reales. Queda un límite: WOLF desbloquea la lista completa de tipos de contenido únicamente para las cuentas que tienen el propio rol administrator. Los usuarios de un rol personalizado permitido reciben los tipos de contenido de Tipos de contenido para editores del sitio (Site editors post types), así que rellena también ese campo, o verán el mismo error.

Solo las propias entradas: wpbe_author_area_roles

Un rol añadido aquí funciona como un editor del sitio limitado a su propio contenido: la tabla muestra solo las entradas de las que el usuario es autor, la columna Autor (Author) no se puede cambiar y solo se pueden editar las columnas marcadas como visible para el editor del sitio (visible for the site editor). Esto encaja con el rol autor o con un rol personalizado de redactor.

/*
 * WOLF: let authors bulk edit their own posts.
 * Child theme functions.php or a code snippets plugin.
 */
add_filter('wpbe_author_area_roles', function ($roles) {
    $roles[] = 'author';
    return $roles;
});

Estos usuarios también reciben solo los tipos de contenido de Tipos de contenido para editores del sitio (Site editors post types).

Cuando un administrador ve el error o pierde las herramientas de administración

WOLF lee los roles de una cuenta de dos maneras. Para la lista de tipos de contenido, comprueba si la cuenta tiene el rol administrator en absoluto. Para todo lo demás (la pestaña Campos meta (Meta Fields), los ajustes de los editores del sitio, la edición de todas las columnas, la elección de cualquier tipo de contenido), comprueba el primer rol de la cuenta frente a wpbe_permit_special_roles. Una cuenta de administrador normal tiene exactamente un rol, así que ambas comprobaciones coinciden. Los plugins de gestión de roles y los que añaden roles propios a los usuarios pueden romper esto de tres maneras, cada una con su propio síntoma:

Qué le ha pasado a la cuentaQué se ve en WOLF
Se añadió otro rol que va primero, por ejemplo un rol de foroNo hay pestaña Campos meta (Meta Fields), ni campo Tipos de contenido para editores del sitio (Site editors post types), y el selector de tipo de contenido vuelve siempre a un mismo tipo
Se concedieron capacidades a la cuenta directamente, no a través de su rolLos mismos síntomas, y el registro de depuración muestra Undefined offset: 0 (PHP 7) o Undefined array key 0 (PHP 8) desde archivos de WOLF como ext/meta/meta.php
El rol de administrador se sustituyó por otro rol, por ejemplo una copia con otro slugNo hay menú de WOLF en absoluto; o, si ese rol es un editor o lo permite un filtro, el mensaje de error, porque la cuenta ya no tiene el rol administrator

Para ver lo que ve WOLF, añade este fragmento un momento y abre la página de WOLF:

/*
 * Temporary check: prints the roles of the logged-in user on the WOLF page.
 * Code snippets plugin; remove it after the check.
 */
add_action('admin_notices', function () {
    if (isset($_GET['page']) && $_GET['page'] === 'wpbe') {
        $user = wp_get_current_user();
        echo '<div class="notice notice-info"><p>' . esc_html(print_r($user->roles, true)) . '</p></div>';
    }
});

Un administrador sano muestra Array ( [0] => administrator ). Si bajo [0] aparece otro rol, quítalo de esta cuenta o convierte administrador (administrator) en el rol principal en tu gestor de roles. Si administrator aparece solo bajo [1] o posterior y no hay nada bajo [0], elimina las capacidades asignadas a la propia cuenta; las capacidades pertenecen al rol. Si falta administrator, devuelve a la cuenta el rol de administrador real. Cuando el rol adicional es de los que solo tienen los administradores, como un rol de keymaster de un foro, añadirlo a wpbe_permit_special_roles también es una solución válida. No edites los archivos del plugin: la causa está en la cuenta, y las ediciones se pierden con la siguiente actualización.

Lista de comprobación

  • Tipos de contenido para editores del sitio (Site editors post types) contiene slugs separados por comas, sin espacios; el primero es el predeterminado.
  • Todos los slugs de ese campo aparecen en el selector de tipo de contenido del administrador.
  • Los roles personalizados se añaden con wpbe_permit_special_roles o wpbe_author_area_roles y tienen la capacidad publish_posts.
  • La cuenta de administrador muestra [0] => administrator en la comprobación de roles.
  • Las columnas que pueden cambiar los editores están marcadas como visible para el editor del sitio (visible for the site editor).

Si todo esto está en orden y el mensaje sigue apareciendo, abre un tema en el foro de soporte de WOLF con el resultado de la comprobación de roles y el contenido de Tipos de contenido para editores del sitio (Site editors post types).