¿Cómo obtengo el permalink de un tipo de entrada personalizada?

25 oct 2011, 05:26:22
Vistas: 62.8K
Votos: 20

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

0
Todas las respuestas a la pregunta 5
1
32

¿Qué tal href="<?php echo get_post_type_archive_link( $post_type ); ?>", donde $post_type es tu tipo de entrada?

Lectura adicional: Codex

1 dic 2011 20:34:45
Comentarios

Pequeña mejora; <?php echo get_post_type_archive_link( $post->post_type ); ?>

Usar $post->post_type en lugar de $post_type proporciona el slug directamente.

rwzdoorn rwzdoorn
19 abr 2022 16:40:36
1

Dentro del bucle (loop), puedes usar simplemente the_permalink(). Fuera del bucle, puedes utilizar get_permalink( $id ).

25 oct 2011 05:44:38
Comentarios

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. 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? Tal vez esto no sea técnicamente un verdadero enlace permanente, solo quiero la URL de ese tipo de publicación.

Industrial Themes Industrial Themes
25 oct 2011 15:48:59
0

O, por lo que vale, get_term_link($term, $taxonomy); - Códice.

1 dic 2011 22:56:11
0

Sé que esta publicación puede ser antigua, pero por si 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 que ayude! :)

30 jul 2012 13:29:26
0

@Stefan KRUGER

curioso por qué el valor se pasa por referencia: &$post_type

aparte: no entiendo por qué puedo proporcionar una respuesta, que no es lo que esto es, pero NO un comentario, que es lo que esto es. eso parece al revés.

25 ago 2023 03:02:43