Quitar la base del slug de los enlaces permanentes de las taxonomías de WooCommerce

    Si quieres eliminar categoría-producto y otros slugs base de taxonomías, usa este código y coloca un punto (sí, un punto) en la configuración de enlaces permanentes:

    Quitar la base del slug de los enlaces permanentes de las taxonomías de WooCommerce
    /* Archivos de categorias de productos sin base */
    add_filter('request', function($vars) {
        global $wpdb;
        if (!empty($vars['pagename']) || !empty($vars['category_name']) || !empty($vars['name']) || !empty($vars['attachment'])) {
            $slug = !empty($vars['pagename']) ? $vars['pagename'] : (!empty($vars['name']) ? $vars['name'] : (!empty($vars['category_name']) ? $vars['category_name'] : $vars['attachment']));
            $exists = $wpdb - > get_var($wpdb - > prepare("SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s", array($slug)));
            if ($exists) {
                $old_vars = $vars;
                $vars = array('product_cat' => $slug);
                if (!empty($old_vars['paged']) || !empty($old_vars['page']))
                    $vars['paged'] = !empty($old_vars['paged']) ? $old_vars['paged'] : $old_vars['page'];
                if (!empty($old_vars['orderby']))
                    $vars['orderby'] = $old_vars['orderby'];
                if (!empty($old_vars['order']))
                    $vars['order'] = $old_vars['order'];
            }
        }
        return $vars;
    });

    Herramientas relacionadas

    • WooCommerce

      El plugin para crear tiendas online por excelencia. Tanto de productos físicos como digitales. Es la base para prácticamente cualquier proyecto web que acepte pagos online.