Wie erhalte ich den Permalink eines benutzerdefinierten Beitragstyps?


15

Ich kann den Permalink eines bestimmten Post-Tags oder einer bestimmten Kategorie erhalten, aber was ist, wenn ich den Permalink eines benutzerdefinierten Post-Typs erhalten möchte? Ich kann im Codex oder anderswo nichts darüber finden, wie das geht.

Antworten:


21

Wie wäre es href="<?php echo get_post_type_archive_link( $post_type ); ?>", wo $post_typeist dein Beitragstyp?

Weiterführende Literatur: Codex


5

Innerhalb der Schleife können Sie einfach verwenden the_permalink(). Außerhalb der Schleife können Sie verwenden get_permalink( $id ).


Das gibt den Permalink eines bestimmten Posts oder einer bestimmten Seite zurück. Ich möchte den Permalink eines Beitragstyps zurückgeben. Wenn es beispielsweise einen Post-Typ namens "Filmkritiken" gibt und der Permalink dieses Post-Typs "www.website.com/movie-reviews" lautet, wie erhalte ich diesen Permalink? Vielleicht ist dies technisch gesehen kein echter Permalink, ich möchte nur die URL dieses Beitragstyps.
Industrielle Themen


1

Ich weiß, dass dieser Beitrag vielleicht alt ist, aber für den Fall, dass jemand anders die Funktion sucht, die dies tut, ist hier der, den ich geschrieben habe. $ post_type muss als Variable übergeben werden :)

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 );
    }
}

Ich hoffe es hilft ! :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.