Cambiar el orden de los artículos en el encabezado del tema Storefront

3 minutos de lectura

avatar de usuario
scott eldo

Estoy usando un tema hijo de WordPress, WooCommerce Theme Storefront.

Las funciones enganchadas del encabezado de la tienda se ordenan de esta manera:

<?php
        /**
         * Functions hooked into storefront_header action
         *
         * @hooked storefront_skip_links                       - 0
         * @hooked storefront_social_icons                     - 10
         * @hooked storefront_site_branding                    - 20
         * @hooked storefront_secondary_navigation             - 30
         * @hooked storefront_product_search                   - 40
         * @hooked storefront_primary_navigation_wrapper       - 42
         * @hooked storefront_primary_navigation               - 50
         * @hooked storefront_header_cart                      - 60
         * @hooked storefront_primary_navigation_wrapper_close - 68
         */
        do_action( 'storefront_header' ); ?>

Me gustaría cambiar el orden para que el product_search viene antes de la secondary_navigation.

He revisado los archivos de la tienda y no puedo encontrar dónde se establece este pedido, solo los artículos individualmente.

¿Alguien puede ayudarme a conectar o hacer lo que sea necesario para cambiar el pedido, por favor?

A la sugerencia de @loictheaztec le faltaba add_action como se muestra a continuación:

add_action( 'init' , 'add_and_remove' , 15 );
function mh_add_and_remove() {
        remove_action( 'storefront_header', 'storefront_product_search', 40 );
        add_action( 'storefront_header', 'storefront_product_search', 25 );
}

Para ello, primero tendrá que eliminarlo con remove_action() función y luego lo conectarás de nuevo con add_action() función, cambiando la prioridad de 40 a 25.

La prioridad 25 se encuentra entre:
@hooked storefront_site_branding – prioridad 20 y @hooked storefront_secondary_navigation – prioridad 30

Pegue este fragmento de código en function.php de su carpeta de tema activo (o mejor en su carpeta de tema secundario activo):

remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );

  • Gracias por esto. Sin embargo, remove_action no funciona. Ahora tengo dos product_search. ¿Alguna idea de por qué no se eliminaría?

    – Scott Eldo

    10 de junio de 2016 a las 23:23

No estoy seguro de si Loic obtuvo su respuesta para resolver el problema duplicado, pero para todo lo que pueda necesitar una respuesta, debe incluirse en una función como sugirió inicialmente Scott Eldo.

Asi que…

add_action( 'init' , 'add_and_remove' , 15 );
function mh_add_and_remove() {
        remove_action( 'storefront_header', 'storefront_product_search', 40 );
        add_action( 'storefront_header', 'storefront_product_search', 25 );
}

en lugar de simplemente ponerlo en function.php como tal …

remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );

Intenté editar la respuesta aceptada, me rechazaron…

Cada respuesta en esta publicación tiene un error, el nombre de la función no coincide con el comando add_action….

Entonces, debería ser…

add_action( 'init' , 'change_header_order' , 15 );
function change_header_order() {
        remove_action( 'storefront_header', 'storefront_product_search', 40 );
        add_action( 'storefront_header', 'storefront_product_search', 25 );
}

avatar de usuario
Amir Hasanzadeh

Puede eliminar las acciones y luego agregarlas en el orden en que desea que aparezcan:

add_action( 'init' , 'mh_add_and_remove' , 15 );
function mh_add_and_remove() {
    remove_action( 'storefront_header','storefront_header_container', 0 );
    remove_action( 'storefront_header','storefront_skip_links', 5 );
    remove_action( 'storefront_header', 'storefront_site_branding', 20);
    remove_action( 'storefront_header','storefront_secondary_navigation', 30);
    remove_action( 'storefront_header', 'storefront_product_search', 40 );
    remove_action( 'storefront_header', 'storefront_header_container_close', 4);

    add_action( 'storefront_header','storefront_header_container', 69 );
    add_action( 'storefront_header','storefront_skip_links', 90 );
    add_action( 'storefront_header', 'storefront_site_branding', 91);
    add_action( 'storefront_header','storefront_secondary_navigation', 92);
    add_action( 'storefront_header', 'storefront_product_search', 93 );
    add_action( 'storefront_header', 'storefront_header_container_close', 94);
}

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad