Как я могу получить постоянную ссылку пользовательского типа сообщения?

15

Я могу получить постоянную ссылку на определенный тег или категорию сообщения, но что, если я хочу получить постоянную ссылку на пользовательский тип сообщения? Я не могу найти ничего в Кодексе или где-либо еще о том, как это сделать.

Промышленные Темы
источник

Ответы:

22

Как насчет того href="<?php echo get_post_type_archive_link( $post_type ); ?>", где $post_typeваш тип сообщения?

Дальнейшее чтение: Кодекс

DJB
источник
5

Внутри цикла вы можете просто использовать the_permalink(). Вне цикла вы можете использовать get_permalink( $id ).

tollmanz
источник
Это возвращает постоянную ссылку определенного поста или страницы. Я хочу вернуть постоянную ссылку типа сообщения. Так, например, если есть тип записи, называемый «обзорами фильмов», и постоянная ссылка этого типа - «www.website.com/movie-reviews», как я могу получить эту постоянную ссылку? Возможно, технически это не настоящая постоянная ссылка, я просто хочу URL этого типа поста.
Промышленные темы
1

Я знаю, что этот пост может быть старым, но на тот случай, если кто-то другой ищет функцию, которая делает это, вот тот, который я написал. $ post_type должен быть передан как переменная :)

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

Надеюсь, это поможет ! :)

Стефан Крюгер
источник