Respuestas de foro creadas

Viendo 4 respuestas - 1 de 4 (de 4 total)
  • Muchas gracias David,

    lo miraré, aunque creo que no me va a hacer falta.
    Al final tengo lo importante en la url, que es la taxonomia y el correspondiente post_type.

    Y si si y si, los permalinks son un infiernoooo!

    Muchas gracias Pablo, ya conocía ese artículo desde hace muchos años 😉
    Pero en mi caso tengo que hacer bastante más.

    Sobre todo porque el primer segmento de la url es el destino y es una taxonomia, no tiene siempre el mismo valor. Además en cada caso debe sacar solo registros cpts que tengan esa taxonomia.
    ej: /es/granada/planes (/idioma/taxonomia/customPostType)
    «es» es el idioma que pueden ser varios.
    «granada» es una taxonomia asociada al cpt planes
    «planes» es el custom post type y solo tengo que sacar los planes que estén asignados al term granada.

    Este sería un ejemplo para el archivo del cpt planes.

    Y luego generar todas las urls correctamente en archivos, single, productos, filtros, etc.

    Ahora mismo tengo ya gran parte hecha y lo estoy moviendo a un plugin básico. Luego pongo el link al gist.

    Un saludo.

    De momento he conseguido que me funcione para el single con esto:

    add_filter('post_type_link', 'ox_post_type_link', 1, 3);
    function ox_post_type_link( $link, $post = 0 ){
        if ( $post->post_type == 'plan' ){
        	
        	$terms = wp_get_object_terms( $post->ID, 'tax_destination' );
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
                $taxonomy_slug = $terms[0]->slug;
            return home_url( $taxonomy_slug .'/' . $post->post_name );
    
        } elseif ( $post->post_type == 'area' ){
    
        	$terms = wp_get_object_terms( $post->ID, 'tax_destination' );
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
                $taxonomy_slug = $terms[0]->slug;
            return home_url( $taxonomy_slug .'/zonas/' . $post->post_name );
    
        } elseif ( $post->post_type == 'itinerary' ){
    
        	$terms = wp_get_object_terms( $post->ID, 'tax_destination' );
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
                $taxonomy_slug = $terms[0]->slug;
            return home_url( $taxonomy_slug .'/itinerarios/' . $post->post_name );
    
        } else {
            return $link;
        }
    }

    y esto:

    add_action( 'init', 'ox_rewrite_add_rewrites' );
    function ox_rewrite_add_rewrites()
    {
    
        //(NO FUNCIONA) Home destino /granada
        add_rewrite_rule(
            '^([^/]+)/?$', //un solo segmento
            'index.php?post_type=destination',
            'top'
        );
    
        //(NO FUNCIONA) Archivo para planes /granada/planes
        add_rewrite_rule(
            '([^/]+)/planes/?$', //un segmento + el literal "planes"
            'index.php?post_type=plan&tax_destination=$matches[1]',
            'top'
        );
    
        //(SI FUNCIONA) Detalle plan /granada/que-hacer-en-granada
        add_rewrite_rule(
            '^([^/]+)/([^/]+)/?$', //un segmento y despues otro segmento
            'index.php?plan=$matches[2]',
            'top'
        );    
    
        //(SI FUNCIONA) Detalle zona /granada/zonas/albaicin
        add_rewrite_rule(
            '^([^/]+)/zonas/([^/]+)/?$', //un segmento y despues otro segmento
            'index.php?area=$matches[2]',
            'top'
        );    
    
        //(SI FUNCIONA) Detalle itinerario /granada/itinerarios/granada-en-un-dia
        add_rewrite_rule(
            '^([^/]+)/itinerarios/([^/]+)/?$', //un segmento y despues otro segmento
            'index.php?itinerary=$matches[2]',
            'top'
        );    
    
        flush_rewrite_rules();
    }

    Pero sigo sin conseguir que funcione para los archivos de los cpt y la home

    Foro: Seguridad
    En respuesta a: Backups de sitios pesados

    Blogvault va fenomenal, y hace backups incrementales. Restore con un boton y staging tambien
    https://blogvault.net/

    Y funciona muy bien para sitios enormes!

Viendo 4 respuestas - 1 de 4 (de 4 total)