web-dev-qa-db-fra.com

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

Je peux obtenir le permalien d'une étiquette ou d'une catégorie de publication spécifique, mais que se passe-t-il si je souhaite 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.

12
Industrial Themes

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

Lectures supplémentaires: Codex

18
djb

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

3
tollmanz

Ou, pour ce que ça vaut, get_term_link($term, $taxonomy); - Codex .

1
cr0z3r

Je sais que ce message est peut-être vieux, mais juste au cas où quelqu'un cherche la fonction qui le fait, voici celui que j'ai écrit. $ 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 ça aide ! :)

1
Stefan KRUGER