Comment obtenir le permalien d'un type de publication personnalisé?


15

Je peux obtenir le permalien d'une balise ou d'une catégorie de publication spécifique, mais que faire si je veux obtenir le permalien d'un type de publication personnalisé? Je ne trouve rien dans le Codex ou ailleurs sur la façon de procéder.

Réponses:


22

Que diriez-vous href="<?php echo get_post_type_archive_link( $post_type ); ?>", où $post_typeest votre type de message?

Pour en savoir plus: Codex


5

Dans la boucle, vous pouvez simplement utiliser the_permalink(). En dehors de la boucle, vous pouvez utiliser get_permalink( $id ).


Cela renvoie le permalien d'une publication ou d'une page spécifique. Je souhaite renvoyer le permalien d'un type de message. Ainsi, par exemple, s'il existe un type de publication appelé "critiques de films" et que le permalien de ce type de publication est "www.website.com/movie-reviews", comment puis-je obtenir ce permalien? Peut-être que ce n'est pas un vrai permalien techniquement, je veux juste l'URL de ce type de message.
Thèmes industriels


1

Je sais que ce message est peut-être ancien, mais juste au cas où quelqu'un d'autre chercherait la fonction qui le fait, voici celle que j'ai écrite. $ post_type doit être passé en tant que 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 );
    }
}

J'espère que cela aide ! :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.