Problema con paneles y secciones en el Personalizador de Temas

  • Autor Autor FinerGaby
  • Fecha de inicio Fecha de inicio
F

FinerGaby

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Holas buenas tardes estoy creando un theme wordpress ^^
Actualmente estoy agregando item en el home que estas se puedan editar desde el theme customizer (que es la parte de personalizar theme)
Pero tengo un problema ya que actualmente para que se den una idea, tengo 6 widget que le quiero agregar que estos se editen desde el theme customizer pero no puedo crear un panel adentro de otro panel, como me explico tengo algo asi:

Theme option> section 1 (opciones theme1), section 2 (opciones theme2)
cada uno adentro tiene su funcion, cuestion como tengo 6 widget estoy tratando de hacer esto para que quede ordenado

Theme option panel 1> section 1 (opciones theme1), section 2 (opciones theme2), panel 2 (opciones de los widget) > section 1,2,3,4,5,6 (opciones de los widget)

Creo que se entiende la idea, el problema que tengo que no puedo hacer un panel dentro del panel 1.

Insertar CODE, HTML o PHP:
function lwp_footer_notice($wp_customize) {
// Add Panel y Section
$wp_customize->add_panel( 'panel_id', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options',
  'theme_supports' => '',
  'title'          => __('Theme Options Home', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
) );
// Add Section 1
	$wp_customize->add_section('lwp-footer-notice-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('noticias', 'nuevo'),
    'description'    =>  __('blablabla', 'nuevo'),
    'panel'  => 'panel_id',
	));

Asi es como tengo panel 1 y con la section 1
Ideas? estuve buscando por google estuve encontrando de la misma forma que estuve probando pero no lo toma que seria esta

Insertar CODE, HTML o PHP:
function lwp_footer_notice($wp_customize) {
// Add Panel y Section
$wp_customize->add_panel( 'panel_id', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options',
  'theme_supports' => '',
  'title'          => __('Theme Options Home', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
) );
// Add Section 1
	$wp_customize->add_section('lwp-footer-notice-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('noticias', 'nuevo'),
    'description'    =>  __('blabla', 'nuevo'),
    'panel'  => 'panel_id',
	));
$wp_customize->add_panel( 'panel_id_2', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options_2',
  'theme_supports' => '',
  'title'          => __('Theme Options Widget', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
  'panel'  => 'panel_id',
) );
// Add Section 1 - sub widget
	$wp_customize->add_section('lwp-footer-widget-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options_widget',
    'theme_supports' => '',
    'title'          => __('Widget 1', 'nuevo'),
    'description'    =>  __('blablabla', 'nuevo'),
    'panel'  => 'panel_id_2',
	));

Esta la forma que intente pero no me lo toma, hace que me salga una section en la parte principal.
 
Holas buenas tardes estoy creando un theme wordpress ^^
Actualmente estoy agregando item en el home que estas se puedan editar desde el theme customizer (que es la parte de personalizar theme)
Pero tengo un problema ya que actualmente para que se den una idea, tengo 6 widget que le quiero agregar que estos se editen desde el theme customizer pero no puedo crear un panel adentro de otro panel, como me explico tengo algo asi:

Theme option> section 1 (opciones theme1), section 2 (opciones theme2)
cada uno adentro tiene su funcion, cuestion como tengo 6 widget estoy tratando de hacer esto para que quede ordenado

Theme option panel 1> section 1 (opciones theme1), section 2 (opciones theme2), panel 2 (opciones de los widget) > section 1,2,3,4,5,6 (opciones de los widget)

Creo que se entiende la idea, el problema que tengo que no puedo hacer un panel dentro del panel 1.

Insertar CODE, HTML o PHP:
function lwp_footer_notice($wp_customize) {
// Add Panel y Section
$wp_customize->add_panel( 'panel_id', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options',
  'theme_supports' => '',
  'title'          => __('Theme Options Home', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
) );
// Add Section 1
    $wp_customize->add_section('lwp-footer-notice-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('noticias', 'nuevo'),
    'description'    =>  __('blablabla', 'nuevo'),
    'panel'  => 'panel_id',
    ));

Asi es como tengo panel 1 y con la section 1
Ideas? estuve buscando por google estuve encontrando de la misma forma que estuve probando pero no lo toma que seria esta

Insertar CODE, HTML o PHP:
function lwp_footer_notice($wp_customize) {
// Add Panel y Section
$wp_customize->add_panel( 'panel_id', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options',
  'theme_supports' => '',
  'title'          => __('Theme Options Home', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
) );
// Add Section 1
    $wp_customize->add_section('lwp-footer-notice-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('noticias', 'nuevo'),
    'description'    =>  __('blabla', 'nuevo'),
    'panel'  => 'panel_id',
    ));
$wp_customize->add_panel( 'panel_id_2', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options_2',
  'theme_supports' => '',
  'title'          => __('Theme Options Widget', 'nuevo'),
  'description'    => __('blablabla', 'nuevo'),
  'panel'  => 'panel_id',
) );
// Add Section 1 - sub widget
    $wp_customize->add_section('lwp-footer-widget-section', array(
   'priority'       => 10,
    'capability'     => 'edit_theme_options_widget',
    'theme_supports' => '',
    'title'          => __('Widget 1', 'nuevo'),
    'description'    =>  __('blablabla', 'nuevo'),
    'panel'  => 'panel_id_2',
    ));

Esta la forma que intente pero no me lo toma, hace que me salga una section en la parte principal.
¡Hola! Parece que estás teniendo problemas para organizar paneles y secciones en el Personalizador de Temas de WordPress.

En tu código, estás tratando de añadir un panel dentro de otro panel, pero el Personalizador de Temas de WordPress no permite paneles anidados de forma directa. Sin embargo, puedes lograr una estructura de organización similar usando secciones y controles.

Aquí tienes un ejemplo de cómo podrías organizar tus paneles, secciones y controles de una manera más plana y ordenada:

PHP:
function lwp_customize_register( $wp_customize ) {
    // Panel 1: Configuración del Tema
    $wp_customize->add_panel( 'panel_id', array(
        'priority' => 10,
        'capability' => 'edit_theme_options',
        'theme_supports' => '',
        'title' => __('Theme Options Home', 'nuevo'),
        'description' => __('Descripción del panel del tema', 'nuevo'),
    ));

    // Sección 1: Opciones del Tema
    $wp_customize->add_section( 'theme_options_section', array(
        'title' => __('Opciones del Tema', 'nuevo'),
        'panel' => 'panel_id',
    ));

    // Sección 2: Opciones de los Widgets
    $wp_customize->add_section( 'widget_options_section', array(
        'title' => __('Opciones de los Widgets', 'nuevo'),
        'panel' => 'panel_id',
    ));

    // Controles para las opciones del tema
    $wp_customize->add_setting( 'theme_setting', array(
        'default' => '',
        'type' => 'theme_mod',
    ));

    $wp_customize->add_control( 'theme_control', array(
        'label' => __('Configuración del Tema', 'nuevo'),
        'section' => 'theme_options_section',
        'settings' => 'theme_setting',
        'type' => 'text',
    ));

    // Controles para las opciones de los widgets
    $wp_customize->add_setting( 'widget_setting', array(
        'default' => '',
        'type' => 'theme_mod',
    ));

    $wp_customize->add_control( 'widget_control', array(
        'label' => __('Configuración del Widget', 'nuevo'),
        'section' => 'widget_options_section',
        'settings' => 'widget_setting',
        'type' => 'text',
    ));
}
add_action( 'customize_register', 'lwp_customize_register' );

En este ejemplo, he creado un panel para las opciones generales del tema, una sección dentro de ese panel para las opciones del tema y otra sección para las opciones de los widgets. Luego, he añadido controles para cada una de las opciones.

Espero que este enfoque te ayude a organizar mejor tus opciones en el Personalizador de Temas de WordPress. ¡Déjame saber si tienes alguna otra pregunta o si necesitas más ayuda!
 
Atrás
Arriba