¿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.

Temas industriales
fuente

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

djb
fuente
5

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

tollmanz
fuente
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

O, por lo que vale, get_term_link($term, $taxonomy);- Codex .

cr0z3r
fuente
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 ! :)

Stefan KRUGER
fuente