custom-taxonomy – Taxonomía de solo lectura (el usuario puede asignar un término pero no puede crear ni editar términos existentes)

Pregunta:

Estoy creando una taxonomía personalizada cuyos términos deben permanecer fijados por todos los usuarios. Una vez que haya configurado el conjunto inicial de términos, quiero que sean inmutables. Tampoco quiero saturar la interfaz de usuario del administrador con enlaces y metaboxes adicionales donde no son necesarios.

Sin embargo, configurar public => 'false' o show_ui => 'false' no solo oculta el enlace de administración de impuestos, sino que también evita que el usuario asigne el término a una nueva publicación.

Necesito una forma de ocultar el enlace "administrar" dentro del menú desplegable del tipo de publicación, mostrar el metabox del selector de términos en la página de la publicación, pero (con suerte) deshabilitar la opción "Agregar término" en la parte inferior de este metabox.

¿Existe tal característica? ¿O se supone que las taxonomías siempre son editables por el usuario?

Las capacidades de taxonomía personalizadas me llevan la mayor parte del camino, ya que puede establecer de forma independiente los derechos CRUD según la capacidad. Pero, ¿cómo deshabilitar incluso a los administradores para que no se modifiquen? (Sé que esto suena como una mala idea, pero es viable).

Respuesta:

Un poco tarde, pero pensé que esto podría necesitar una actualización.

Cree su taxonomía personalizada y agregue los términos que necesita, luego regrese a su función register_taxonomy() y establezca el argumento de capabilities (que a su vez acepta una variedad de capacidades). Puede ver cómo configuro el sexo para perros, que solo puede tener dos valores: "Masculino" o "Femenino", que ingreso. Ahora los administradores solo pueden asignar un perro a un sexo, pero no pueden agregar, eliminar ni editar los sexos.

register_taxonomy('sex', 'dog', array(
  'capabilities' => array(
    'manage_terms' => '',
    'edit_terms' => '',
    'delete_terms' => '',
    'assign_terms' => 'edit_posts'
  ),
  'label' => 'Sex',
  'labels' => array(
    'name' => 'Sex',
    'add_new_item' => 'Add New Sex',
    'new_item_name' => "Add New Sex"
  ),
  'public' => true,
  'show_admin_column' => true,
  'show_in_nav_menus' => false,
  'show_tagcloud' => false,
  'show_ui' => true,
  'hierarchical' => true
));

Trabaja en taxonomías jerárquicas; No probé no jerárquico, pero debería funcionar allí también.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım