Pregunta sobre Developing with WordPress de Wordpress:

Rol personalizado con add_role

Un usuario pregunt贸 馃憞

Hola,

Quiero agregar un rol personalizado llamado ‘custom_editor’. Este rol junto con un editor normal deber铆a permitir la edici贸n de opciones de temas. Pero este rol no debe crearse ni agregarse, a menos que mi tema se ponga en acci贸n.

Entonces, al principio, en las funciones adjuntas a ‘after_setup_theme’ In put there

add_role(	'custom_editor',
		'Erweiterter Redakteuer',
		array(
			// Additional Capabilities
			'edit_theme_options' => true,
			// Editor Capabilities
			'delete_others_pages' => true,
			'delete_others_posts' => true,
			'delete_pages' => true,
			'delete_posts' => true,
			'delete_private_pages' => true,
			'delete_private_posts' => true,
			'delete_published_pages' => true,
			'delete_published_posts' => true,
			'edit_others_pages' => true,
			'edit_others_posts' => true,
			'edit_pages' => true,
			'edit_posts' => true,
			'edit_private_pages' => true,
			'edit_private_posts' => true,
			'edit_published_pages' => true,
			'edit_published_posts' => true,
			'manage_categories' => true,
			'manage_links' => true,
			'moderate_comments' => true,
			'publish_pages' => true,
			'publish_posts' => true,
			'read' => true,
			'read_private_pages' => true,
			'read_private_posts' => true,
			'unfiltered_html' => true,
			'upload_files' => true
		)
	);

Tiene el potencial y puedo aplicarlo a los usuarios. Pero un usuario con esta capacidad no puede editar las opciones del tema.

Si edito la capacidad del editor en su lugar

$editor = get_role( 'editor' );
$editor->add_cap( 'edit_theme_options' );

luego, todos los usuarios con las capacidades de ‘editor’ pueden editar las opciones del tema.

驴Qu茅 estoy haciendo mal?

Este tema fue modificado hace 3 a帽os, 1 mes por.

(@bcworkz)

Hace 3 a帽os, 1 mes

Prob茅 su c贸digo add_role () en mi sitio y un usuario con ese rol podr铆a editar las opciones del tema. Este usuario us贸 la personalizaci贸n para cambiar veinte opciones de tema sin ninguna duda. 驴As铆 es como configura las opciones de su tema? Con la personalizaci贸n, puede agregar configuraciones que requieran cualquier competencia que necesite, por lo que ‘edit_theme_options’ puede no ser suficiente para su configuraci贸n. Como agregar p谩ginas de administraci贸n.

Lanzador de hilos

(@tibur贸n azul)

Hace 3 a帽os, 1 mes

Gracias por su respuesta.

Estaba adivinando, llamar a algo en el orden de mis funciones no es correcto. Estoy totalmente de acuerdo contigo, si ambas formas no funcionan. Dado que el rol existente con ‘add_cap’ funciona perfectamente, todav铆a existen algunas dudas.

驴Puede proporcionar la funci贸n completa donde agreg贸 ‘add_role’. Verificar铆a doulbe si hago la llamada a ‘add_role’ en la ubicaci贸n correcta.

(@bcworkz)

Hace 3 a帽os, 1 mes

Agregu茅 su c贸digo de revocaci贸n a la acci贸n 芦init禄 como prueba r谩pida. Esta ser铆a la forma incorrecta de agregar un nuevo rol. Hay roles continuos, no tiene sentido agregar el mismo rol a cada solicitud, como es el caso del gancho 芦init禄. Es mejor agregar roles al c贸digo que se ejecuta una vez y est谩 listo, como el enlace de activaci贸n para un plugin o tema.

El pedido no parece demasiado grande al final. Incluso si es 芦incorrecto禄 la primera vez, porque persiste, se aplicar铆a a aplicaciones posteriores. Sin embargo, hay una advertencia importante. Si lo agrega demasiado pronto, antes de que los roles se carguen desde la SS, llamar a add_role () no tendr铆a ning煤n efecto. Si llama a add_role () directamente desde el c贸digo del plugin sin agregar la llamada a un gancho m谩s tarde, ser铆a prematuro. 鈥淚nit鈥 llegar铆a bastante tarde, pero como se mencion贸, es el gancho equivocado. Los ganchos recomendados son plugins o ganchos de activaci贸n de temas.

Lanzador de hilos

(@tibur贸n azul)

Hace 3 a帽os, 1 mes

Segu铆 tus sugerencias y cre茅 una funci贸n de inicio, que est谩 adjunta a ‘load-theme.php’. Ahora, la funci贸n solo se proporciona cuando cambia de tema. As铆 que creo que este es el lugar correcto, ya que add_role no siempre se llama.

Pero todav铆a ten铆a la misma pregunta, as铆 que imprim铆 los privilegios del nuevo rol

	$custom_editor = get_role( 'custom_editor' );
	$custom_editor->add_cap( 'edit_theme_options' );
	print_r($custom_editor);

No se incluy贸 la capacidad ‘edit_theme_options’. Entonces me di cuenta de que faltaba una coma al final de mi c贸digo inicial. As铆 que en vez 'upload_files' => true, estaba 'upload_files' => true. Y ahora, despu茅s de esta molestia, funciona como se esperaba. 馃檪

Gracias por tu ayuda.

Esta respuesta fue modificada hace 3 a帽os, hace un mes por. Esta respuesta fue modificada hace 3 a帽os, hace un mes por.

(@bcworkz)

Hace 3 a帽os, 1 mes

De nada. Si upload_files es el 煤ltimo elemento en una declaraci贸n de edici贸n, la coma terminal es opcional, por lo que realmente no explica sus comentarios. Pero si tiene su rol personalizado en el trabajo, 驴a qui茅n le importa? 隆Funciona! 馃檪

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *