Hầu như luôn luôn không bao giờ được khuyến khích chạy SQL tùy chỉnh khi WordPress có các chức năng gốc để thực hiện một công việc cụ thể. Slug hoặc post_name của một trang cũng được sử dụng trong đường dẫn của trang (URL) để xác định và trả về nội dung của trang đó khi một trang đó được truy cập. Điều này có nghĩa là, chúng ta có thể sử dụng get_page_by_path() và chỉ cần chuyển sên (post_name) cho hàm và nhận đối tượng trang được trả về.
get_page_by_path ( string $page_path, string $output = OBJECT, string|array $post_type = 'page' )Giống như nhiều chức năng và quy ước đặt tên khác (như post_name thực sự là sên, chứ không phải tên) trong WordPress, tên của ________ 6 thật khó hiểu và imho ngu ngốc vì bạn có thể chuyển bất kỳ loại bài nào cho chức năng
Chúng ta có thể sử dụng get_page_by_path() sẽ không trả về không tìm thấy trang hoặc đối tượng trang thành công. Hãy viết một chức năng trình bao bọc thích hợp sẽ trả về sai khi thất bại và sẽ luôn trả về đối tượng trang bất kể trang có tồn tại
function get_post_by_post_name( $slug = '', $post_type = '' ) { //Make sure that we have values set for $slug and $post_type if ( !$slug || !$post_type ) return false; // We will not sanitize the input as get_page_by_path() will handle that $post_object = get_page_by_path( $slug, OBJECT, $post_type ); if ( !$post_object ) return false; return $post_object; }Sau đó bạn có thể sử dụng nó như sau
if ( function_exists( 'get_post_by_post_name' ) ) { $post_object = get_post_by_post_name( 'post-name-better-known-as-slug', 'your_desired_post_type' ); // Output only if we have a valid post if ( $post_object ) { echo apply_filters( 'the_title', $post_object->post_title ); } }Nếu bạn thực sự chỉ cần tiêu đề bài viết được trả về, chúng ta có thể thay đổi một chút chức năng
function get_post_title_by_post_name( $slug = '', $post_type = '' ) { //Make sure that we have values set for $slug and $post_type if ( !$slug || !$post_type ) return false; // We will not sanitize the input as get_page_by_path() will handle that $post_object = get_page_by_path( $slug, OBJECT, $post_type ); if ( !$post_object ) return false; return apply_filters( 'the_title', $post_object->post_title ); }và sau đó sử dụng nó như sau
if ( function_exists( 'get_post_title_by_post_name' ) ) { $post_title = get_post_title_by_post_name( 'post-name-better-known-as-slug', 'your_desired_post_type' ); // Output only if we have a valid post if ( $post_title ) { echo $post_title; } }Tiết lộ: Bài viết này có thể chứa các liên kết liên kết và bất kỳ doanh số nào được thực hiện thông qua các liên kết như vậy sẽ thưởng cho chúng tôi một khoản hoa hồng nhỏ, mà không phải trả thêm chi phí cho bạn. Đọc thêm về công bố liên kết ở đây.
Có thể có một tình huống khi bạn cần hiển thị nội dung dựa trên sự tồn tại của một trang hoặc bài tùy chỉnh không phân cấp theo URL. Như ví dụ dưới đây, có hai trang mẹ khác nhau cho cùng một sên trang. Chúng tôi giả định rằng một số trang nhất định sẽ có cùng một tiêu đề và chỉ có các trang mẹ khác nhau. Vì vậy, chúng tôi muốn kiểm tra xem một trang có tồn tại bằng URL không?
//example.com/audits/third-quarter-report://example.com/audits/third-quarter-report //example.com/banking/third-quarter-report://example.com/banking/third-quarter-report |
Kiểm tra xem một trang có tồn tại bằng URL không
Để tồn tại cho một trang, chúng ta có thể lập một danh sách các đường dẫn để kiểm tra
$page_paths=array(page_paths=array( 'audits/third-quarter-report','audits/third-quarter-report', 'banking/third-quarter-report''banking/third-quarter-report' );; foreach ($ page_paths as $ page_path) {($page_paths as $page_path){ $page=get_page_by_path($page_path);$page=get_page_by_path($page_path); if(!$page){if(!$page){ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Không tồn tại.';echo ''.$page_path.' Does not exist.'; }else{}else{ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tồn tại và giải quyết để: '.get_permalink ($ page-> id).' ';echo''.$page_path.' Exists and resolves to: '.get_permalink($page->ID).''; } } } |
Hàm & nbsp; get_page_by_path () khá tiện dụng trong trường hợp như vậy để lấy một trang đưa ra đường dẫn của nó. & Nbsp; bạn cũng có thể kiểm tra & nbsp; nếu một bài đăng tùy chỉnh & nbsp; cách tương tự.