Tôi có thể nhận được permalink của một thẻ bài hoặc danh mục cụ thể, nhưng nếu tôi muốn có được permalink của một loại bài tùy chỉnh thì sao? Tôi không thể tìm thấy bất cứ điều gì trong Codex hoặc bất cứ nơi nào khác về cách làm điều này.
Tôi có thể nhận được permalink của một thẻ bài hoặc danh mục cụ thể, nhưng nếu tôi muốn có được permalink của một loại bài tùy chỉnh thì sao? Tôi không thể tìm thấy bất cứ điều gì trong Codex hoặc bất cứ nơi nào khác về cách làm điều này.
Câu trả lời:
Trong vòng lặp, bạn chỉ cần sử dụng the_permalink()
. Bên ngoài vòng lặp, bạn có thể sử dụng get_permalink( $id )
.
Tôi biết bài đăng này có thể cũ nhưng chỉ trong trường hợp người khác đang tìm kiếm chức năng này, đây là bài tôi đã viết. $ post_type phải được truyền dưới dạng một biến :)
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 );
}
}
Hy vọng nó giúp ! :)