¿Cómo obtengo el enlace permanente de un tipo de publicación personalizado?


15

Puedo obtener el enlace permanente de una etiqueta o categoría de publicación específica, pero ¿qué sucede si quiero obtener el enlace permanente de un tipo de publicación personalizada? No puedo encontrar nada en el Codex ni en ningún otro lugar sobre cómo hacer esto.

Respuestas:


22

¿Qué tal href="<?php echo get_post_type_archive_link( $post_type ); ?>", dónde $post_typeestá tu tipo de publicación?

Lectura adicional: Codex


5

Dentro del ciclo, simplemente puede usar the_permalink(). Fuera del bucle, puede usar get_permalink( $id ).


Eso devuelve el enlace permanente de una publicación o página específica. Quiero devolver el enlace permanente de un tipo de publicación. Entonces, por ejemplo, si hay un tipo de publicación llamado "reseñas de películas", y el enlace permanente de ese tipo de publicación es "www.website.com/movie-reviews", ¿cómo obtengo ese enlace permanente? Quizás técnicamente este no sea un enlace permanente verdadero, solo quiero la URL de ese tipo de publicación.
Temas industriales


1

Sé que esta publicación puede ser antigua, pero en caso de que alguien más esté buscando la función que hace esto, aquí está la que escribí. $ post_type debe pasarse como una variable :)

if( !function_exists( 'wp_get_post_type_link' )  ){
    function wp_get_post_type_link( &$post_type ){

        global $wp_rewrite; 

        if ( ! $post_type_obj = get_post_type_object( $post_type ) )
            return false;

        if ( get_option( 'permalink_structure' ) && is_array( $post_type_obj->rewrite ) ) {

            $struct = $post_type_obj->rewrite['slug'] ;
            if ( $post_type_obj->rewrite['with_front'] )
                $struct = $wp_rewrite->front . $struct;
            else
                $struct = $wp_rewrite->root . $struct;

            $link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );       

        } else {
            $link = home_url( '?post_type=' . $post_type );
        }

        return apply_filters( 'the_permalink', $link );
    }
}

Espero eso ayude ! :)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.