quitar funciones en un tema hijo

Inicio Foros WordPress Themes y Diseño quitar funciones en un tema hijo

Etiquetado: , ,

Este debate contiene 10 respuestas, tiene 2 mensajes y lo actualizó  LGrusin hace 4 años, 5 meses.

  • Autor
    Publicaciones
  • #75702

    Juanpol
    Participante

    muy buenas tardes,

    todos sabemos añadir funciones a un tema hijo pero… cómo podemos quitarlas?

    gracias,

  • #75704

    LGrusin
    Miembro

    Pues según el CODEX la tienes que volver a declarar. Es decir, puesto que el functions.php del tema hijo carga antes que el functions.php del tema padre, haces las modificaciones de la función en el functions.php del tema hijo pero de la siguiente manera:

    if ( ! function_exists( ‘funcion_tema_padre’ ) ) {
    function funcion_tema_padre() {
    // Modifica la función del tema padre
    }
    }

    Espero que sea eso a lo que te refieres…

    Un saludo

  • #75705

    Juanpol
    Participante

    gracias por la información pero…

    si quiero eliminar -por ejemplo- la opción de personalizar el fondo del sitio web…. debo la nombro y la dejo vacía?

    gracias.

  • #75707

    LGrusin
    Miembro

    En este caso dependerá de cada theme. Normalmente usan los llamados “ganchos”, de manera que en el functions.php del tema hijo se puede desactivar con remove_action

    Un saludo

  • #75709

    Juanpol
    Participante

    remove_action…

    y cómo lo utilizo?

    gracias!

  • #75711

    LGrusin
    Miembro

    Te pongo un ejemplo con el functions.php del TwentyFourteen.

    Existe una función para adaptar el ancho del contenido cuando incluye imágenes adjuntas.
    Pone:
    add_action( ‘template_redirect’, ‘twentyfourteen_content_width’ );
    pues en el functions.php del tema hijo pondrías:
    remove_action( ‘template_redirect’, ‘twentyfourteen_content_width’ );

    Un saludo

  • #75740

    Juanpol
    Participante

    mmm… sigo sin poder hacerlo,

    acabo de crear un functions.php con el siguiente código:
    <?php
    // quitar personalización del theme.
    remove_action( ‘after_setup_theme’, ‘twentytwelve_setup’ );
    lo que quiero hacer es quitar la posibilidad de añadir una imagen en la cabecera del theme, etc…

    y hasta el momento no funciona.

    imagino que estoy escribiendo mal el código PHP.

    gracias por vuestra ayuda,

    saludos.

  • #75741

    LGrusin
    Miembro

    Para estos casos se usa remove_theme_support( ‘custom-header’ );

    El código completo sería:
    add_action( ‘after_setup_theme’, ‘remove_parent_theme_features’, 11);
    function remove_parent_theme_features() {
    remove_theme_support( ‘custom-header’ );
    }

    Un saludo

  • #75742

    Juanpol
    Participante

    podrías indicarme la estructura exacta que debo darle al fichero functions.php por favor?

    gracias.

  • #75743

    Juanpol
    Participante

    qué indica el “11” al final de add_action?

  • #75748

    LGrusin
    Miembro

    El archivo functions.php del theme hijo sería exactamente como esto:
    <?php
    add_action( ‘after_setup_theme’, ‘remove_parent_theme_features’, 11);
    function remove_parent_theme_features() {
    remove_theme_support( ‘custom-header’ );
    }
    ?>

    El 11 es la prioridad al ejecutar la función, debe cargarse después del after_setup_theme del padre, que según el CODEX tiene prioridad 10.

    Saludos

El foro ‘Themes y Diseño’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest