wordpress cómo agregar wp_editor en una matriz

5 minutos de lectura

avatar de usuario
Syed mohamed aladeen

Tuve un pequeño problema en mi código de wordpress. Necesito mostrar un wp_editor de wordpress en mi página donde tiene una matriz de valores. Los valores se definen de la siguiente manera

    $fields[] = array(
        'name' => __('Class', 'my-theme'),
        'desc' => __('', 'my-theme'),
        'id' => 'class'.$n,
        'std' => ( ( isset($class_text[$n]['class']) ) ? $class_text[$n]['class'] : '' ),
        'type' => 'text');

Cuando defino mi wp_editor como la matriz anterior, no se muestra donde quiero. En cambio, todos los editores se muestran en la parte superior antes de cualquier contenido en todas las páginas.

Intenté como el siguiente conjunto de matrices para el editor:

    $fields[] = array(
        'name' => __('My Content', 'my-theme'),
        'id' => 'sectioncontent'.$n,
        'std' => ( ( isset($class_text[$n]['content']) ) ? $class_text[$n]['content'] : '' ),
        'type' => wp_editor( '', 'sectioncontent'.$n ));

Adjunto la imagen de mi problema:

ingrese la descripción de la imagen aquí

  • ¿Desde qué gancho estás llamando a wp_editor?

    – Francisco Félix

    27 de octubre de 2015 a las 3:03

  • Creo que wp_editor es una función de editor predeterminada en wordpress. Acabo de llamar como mi código anterior.

    – Syed mohamed aladeen

    27 de octubre de 2015 a las 5:04

  • El dónde determinará el cuándo. Simplemente no puedes modificar los scripts. Necesita saber qué archivos agregar/modificar y qué funciones llamar para obtener lo que quiere donde quiere. Por favor revise esta página codex.wordpress.org/Plugin_API/Action_Reference Estaré feliz de ayudar si me dice exactamente dónde y cuándo necesita incluir el editor (la página de edición de una publicación normal, la página de edición de un tipo de publicación personalizada, la página de opciones de su complemento, etc.)

    – Francisco Félix

    27 de octubre de 2015 a las 6:54

avatar de usuario
Touqeer Shafi

Causa

Por defecto wp_editor imprime el área de texto, por eso no puede asignarlo a ninguna variable o matriz.

Solución

puedes usar almacenamiento en búfer de salida de php para obtener datos impresos en una variable como esta:

ob_start(); // Start output buffer

// Print the editor
wp_editor( '', 'sectioncontent'.$n );

// Store the printed data in $editor variable
$editor = ob_get_clean();

// And then you can assign that wp_editor to your array.

$fields[] = array(
        'name' => __('My Content', 'my-theme'),
        'id' => 'sectioncontent'.$n,
        'std' => ( ( isset($class_text[$n]['content']) ) ? $class_text[$n]['content'] : '' ),
        'type' => $editor); // <-- HERE

  • gracias por su respuesta, pero no funciona, solo aparece una página vacía.

    – Syed mohamed aladeen

    30/10/2015 a las 11:40


  • Op’s, obtuve un tipo en mi respuesta, ahora verifique.

    – Touqeer Shafi

    2 de noviembre de 2015 a las 6:00

  • la codificación del área de texto se encuentra dentro de la clase como esta class=”section section-

    Para explicar las otras partes de esta matriz de campo:

    • ‘Nombre’ será lo que aparezca en la etiqueta de este campo. En este caso, está utilizando las funciones de localización en wordpress (__()) para obtener una frase del diccionario local en el dominio ‘my-theme’.
    • ‘id’ es lo que utilizará para recuperar lo que se ha ingresado en este campo. También afectará el atributo ID asignado a los elementos HTML en la página de opciones.
    • ‘std’ es el valor predeterminado para el campo, que será el valor del campo cuando se muestre la página de opciones por primera vez, antes de que el usuario haya configurado alguna opción.

    En la página de documentación del editor vinculada anteriormente, verá los detalles de varias otras opciones que puede definir, como mostrar los botones de carga de medios y ejecutar la entrada a través de wpautop para reemplazar los saltos de línea en el editor con <p> etiquetas (de forma predeterminada, ambas son verdaderas).

    ¿Ha sido útil esta solución?