Truy vấn id bài đăng WordPress
Nếu bạn đang tìm kiếm thông tin về cách nhận bài đăng theo ID, tất cả những gì bạn cần là sử dụng hàm get_post(). Bài viết này hướng dẫn các bạn một số trường hợp cụ thể về cách lấy nội dung bài viết theo ID trong WordPress và các trường hợp mở rộng như. lấy tiêu đề, lấy tên chuyên mục, lấy ngày đăng, lấy thuật ngữ theo id bài viết Show
Mục lục 5 ví dụ về nhận bài đăng theo idget post by ID trong WordPress là dạng truy vấn lấy thông tin của một hoặc nhiều post dựa trên ID của post. Đây là 3 cách phổ biến nhất để lấy bài viết theo ID trong WP Nhận trạng thái bài đăng theo id bài đăngCó nhiều cách để lấy trạng thái bài đăng theo id bài đăng, nhưng cách tốt nhất là sử dụng hàm get_post_status 1 $current_post_status = get_post_status( 18 ); // 18 is post ID Nhận loại bài đăng theo idChúng ta có thể sử dụng hàm get_post_type để Nhận loại bài đăng theo id 1 2 3 4 5 $post_type = get_post_type( $id$id$id$id$id$id$id$id$id$id$id ) // $id is post ID
if ( $post_type == 'post' ) { //nếu đúng }
Nội dung bài đăng WordPress theo IDCâu hỏi đầu tiên là làm cách nào tôi có thể tải nội dung bài đăng WordPress theo id bài đăng? . Dưới đây là một ví dụ mẫu về nhận nội dung bài đăng theo ID trong WordPress 1 2 3 4 5 6 $my_post_id = 555;//ID bài đăng $content_post = get_post($my_post_id); $content = $content_post - >post_content; $content = apply_filters('the_content'<, $content); $content = str_replace(']]>, ']]>', $content); echo $content; Cách tương tự để lấy nội dung trang cụ thể. Đây là cách thích hợp để lấy nội dung trang 1 2 3 4 5 6 $id = 47; $post = get_post($id); $content = apply_filters('the_content'<, $post->post_content); echo $content; ?> Cách thứ hai là sử dụng WP_Query để hiển thị nội dung của loại bài đăng tùy chỉnh dựa trên ID của nó Trong ví dụ này, tôi muốn lấy nội dung từ bài đăng có ID 55. Có một chức năng trong đó để lấy URL hình ảnh nổi bật. Ví dụ bên dưới sẽ hiển thị tiêu đề, ảnh nổi bật với kích thước 1280×800 và toàn bộ nội dung của bài viết. 1 2 3 4 5 6 7 8 9 10 11 12 $my_id = 55; $args = mảng('p'< => $my_id, 'post_type' => 'about'); $result = mới WP_Query($args); while ( $result - >have_posts() ) : $result - >the_post(); ?> toàn cầu$post;?> global $post; ?> the_title(); $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 1280,800 ), false, '' ); ?> <div lớp = "phần" style="background: url(?php echo $src[< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"< . trải ra; . trải ra; . trải ra; . trải ra; . -1;"0]; ?>) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; z-index:-1;"> the_content()?>< the_content () ?> Nhận tiêu đề bài đăng và nội dung bài đăng theo IDĐể lấy tiêu đề cho bài đăng có ID 100 1 2 $post_query = get_post( 100 ); echo $post_query - >post_title; Để lấy nội dung bài đăng cho bài đăng có ID 100 1 2 $post_query = get_post( 100 ); echo $post_query - >post_content; Cách thứ 2 là dùng hàm get_post_field() để lấy dữ liệu Cú pháp của hàm này 1 get_post_field( $field, $post_id, $context ); Vì vậy, mã sẽ nhận được tiêu đề theo id sau 100 trông như thế này 1 $post_title = get_post_field( 'post_title'<, 100 ); Chính vì vậy bạn muốn hiển thị tiêu đề có thể bỏ qua param cuối Tương tự, bạn có thể lấy nội dung bài đăng từ trường post_content 1 $title = get_post_field( 'post_content'<, 100 ); Dưới đây là các trường bài đăng mặc định mà bạn có thể nhận được (phân biệt chữ hoa chữ thường) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 TÔI post_author Ngay gưỉ post_date_gmt Nội dung bài viết post_title post_excerpt Trạng thái bài đăng comment_status ping_status post_password đăng tên bay vèo ping post_modified post_modified_gmt post_content_filtered post_parent hướng dẫn thực đơn gọi món loại thư post_mime_type đếm Bình luận lọc Các phương pháp trên có thể được áp dụng cho nhiều post_types khác nhau như bài đăng, trang hoặc loại bài đăng tùy chỉnh Nhận bài đăng bằng nhiều ID bài đăng?Bạn có thể sử dụng get_posts() vì nó nhận các đối số giống như WP_Query. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $args = mảng( 'post__in' = > mảng(25,28,65,72,86) ); $result_posts = get_posts( $args ); nếu( . trống( $result_posts ) ){ $output = '; foreach ( $result_posts as $p ){ $đầu ra . = ' . get_permalink( $p - . ID ) . '">' . $p - >post_title . '; } $đầu ra . = ''; } echo $output ?? ''''''''''''''''''''''''''''''''''''''';
Cách thứ hai là sử dụng WP_Query. Đây là một ví dụ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $args = mảng( 'post__in' = > mảng(25,28,65,72,86), 'post_status' = > 'xuất bản', 'orderby’ => 'title', 'đặt hàng ' = > 'ASC', ); // Truy vấn $the_query = mới WP_Query( $args ); // Vòng lặp if ( $the_query - >have_posts() ) { echo '; while ( $the_query - >have_posts() ) { $the_query - >the_post(); tiếng vang ' . get_the_title() . ''; } echo ''; } khác { // không tìm thấy bài viết } /* Khôi phục dữ liệu bài đăng ban đầu */ wp_reset_postdata(); ?> Kết quả sẽ hiện ra như thế này
Tóm lại có 2 hàm bạn có thể sử dụng để lấy bài theo ID, đây là 2 ví dụ cơ bản nhất giúp bạn dễ nhớ và thực hành 1 2 3 $post = get_post( 55 ); // Lấy tiêu đề bài viết theo ID echo $post - >post_title; Phương pháp 2. Sử dụng WP_Query Hoặc bạn cũng có thể lấy bài đăng theo ID với WordPress WP_Query 1 2 3 4 5 6 7 8 $query = mới WP_Query( array( 'p' => 55 ) ); $query - >the_post(); // Lấy loại bài đăng theo ID echo $query - >bài đăng->post_type; // Nhận trạng thái bài đăng theo ID bài đăng echo $query - >bài đăng->post_status; // Lấy nội dung bài viết theo ID bài viết echo $query - >bài đăng->post_content; 11 cách để lấy ID bài viết trong WordPressTiếp theo, chúng ta tiếp tục tìm hiểu theo hướng ngược lại, làm cách nào để lấy Post ID trong WordPress? Đăng ID trong cơ sở dữ liệu WordPressTrong cơ sở dữ liệu của WordPress có một bảng tên là wp_posts (bảng của bạn có thể khác do tiền tố của mỗi website khác nhau). Khi click vào bảng wp_posts để xem thông tin sẽ có 1 cột gọi là cột ID. Bạn có thể tìm thấy ID bài đăng của bất kỳ bài đăng/trang nào ở đó Đăng ID trong PHPMyAdmin của Cơ sở dữ liệu WordPressThêm cột ID bài đăng vào Bảng bài đăng WordPressCách thứ 2 này chuyên nghiệp hơn khi bạn thêm cột ID của bài viết vào trang hiển thị danh sách bài viết trong khu vực quản trị. Cách này khá chuyên nghiệp và tiện lợi, mình cũng khuyên dùng cách này để hiển thị ID của từng bài viết trong khu vực quản trị Bạn cũng không cần biết code, vì mình đã viết sẵn code bên dưới, nhiệm vụ của bạn chỉ là copy và paste vào dòng cuối cùng của hàm. tập tin php trong chủ đề của bạn 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /** * Thêm cột trống vào bảng hiển thị danh sách bài viết trong khu vực Admin của Wordpress * * Mảng @param $columns Mảng của tất cả ID và tiêu đề cột hiện tại */ function hhpostid_add_column( $columns ){ $columns['huyhoa_postid_column'] =< 'Post ID'; return $columns; } add_filter('manage_posts_columns', 'hhpostid_add_column', 5); // add_filter('quản lý_trang_cột', 'hhpostid_add_column', 5);
/** * Hiển thị ID của từng bài viết tương ứng với tiêu đề của bài viết * * @param chuỗi $column ID của cột * @param số nguyên $id ID bài đăng */ function push_column_content( $column, $id ){ if( $column === 'huyhoa_postid_column) } add_action('manage_posts_custom_column', 'push_column_content', 5, 2); // add_action('manage_pages_custom_column', 'push_column_content', 5, 2); Thêm cột ID bài đăng vào Bảng bài đăng WordPress Nhận ID từ đối tượng Global $postGhi chú. Tất cả các ví dụ sau đều yêu cầu một số kiến thức cơ bản về PHP. Tuy nhiên nếu bạn chưa biết gì về code cũng không sao, hãy thử làm theo hướng dẫn chi tiết bên dưới Đối tượng toàn cầu $post chứa tất cả dữ liệu của bài đăng hiện tại. ID bài đăng cũng có trong $post, vì vậy việc lấy ID POST khá dễ dàng vì chúng ta chỉ cần xuất nó ra 1 2 toàn cầu $post; echo $post - >ID; Mình dùng global $post để nếu bạn dùng trong hàm hay plugin thì nó vẫn hiển thị POST ID Sử dụng hàm get_the_id() và the_id()Cả hai hàm get_the_id() và the_id() đều trả về ID của bài đăng. Điểm khác biệt ở đây là hàm get_the_id() trả về ID của bài viết dạng số và không hiển thị nó, trong khi hàm the_id() sẽ luôn hiển thị ID của bài viết Với hàm get_the_id() thì phải echo ID mới hiển thị 1 echo get_the_id(); Với hàm the_id() thì không cần echo vì nó đã in sẵn rồi 1 the_id(); Nhận ID bài đăng theo tiêu đề, SLugNhận ID bài đăng theo tiêu đề Đây là một chức năng WordPress tích hợp và kể từ phiên bản 3. 0. 0, nó không chỉ hoạt động cho các trang mà còn cho bất kỳ loại bài đăng tùy chỉnh nào. Bạn có thể sử dụng chức năng này ở bất kỳ đâu trong chủ đề, plugin hoặc chức năng của mình 1 2 $query_post = get_page_by_title( 'CÁCH TỐT NHẤT ĐỂ, '', 'post' ); echo $query_post - >ID; Nhận ID bài đăng bằng SLug Chức năng tương tự như get_page_by_title(). Bạn chỉ cần thay thế tiêu đề bằng sên URL. Một lưu ý là nếu URL của bạn có cả category hoặc parent thì bạn cần điền cả category hoặc parent. 1 2 $query_post = get_page_by_path('liên hệ với chúng tôi, '', 'post'); echo $query_post; Nếu URL có cha hoặc danh mục, ví dụ: /vi/ao-dai/, bạn phải điền đầy đủ URL 1 2 $query_post = get_page_by_path('/vi/, '', 'post'); echo $query_post; Nhận ID bài đăng từ URL trong WordPressĐể lấy ID bài đăng từ URL trong WordPress, chỉ cần sử dụng mã bên dưới. Thay thế URL ví dụ bên dưới (https. //huyhoa. net/wp-query/) bằng URL bạn muốn tìm ID của bài đăng 1 $post_id = url_to_postid( 'https. //huyhoa. net/wp-query/' ); Một cách dễ dàng hơn để lấy ID bài đăng trong vòng lặp WP_QueryNếu bạn đang ở trong vòng lặp của WP_Query hoặc bất kỳ vòng lặp nào khác, bạn có thể dễ dàng lấy ID bài đăng bằng cách sau 1 2 3 4 $query_post = mới WP_Query( 'posts_per_page=5' ); while( $query_post - >have_posts() ) : $query_post - >the_post(); echo $query_post - >bài đăng->ID; // print post ID cuối cùng; Nhận ID bài đăng bằng khóa metaTrên thực tế, có hai cách để Get Post ID bằng meta key – đó là sử dụng truy vấn WP_Query hoặc truy vấn MySQL. Hàm dưới đây tôi chỉ cho bạn sẽ trả về ID bài đăng hoặc một mảng ID bài đăng khớp với khóa meta đã cho 1 2 3 4 5 6 7 8 9 10 11 12 13 hàm get_post_id_by_meta_key( $meta_key ) { toàn cầu $wpdb; $ids = $wpdb - >get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key ) ); if( count( $ids ) > 1 ) { return $ids; // trả về mảng } khác { return $ids[0]; // return int } } Nhận ID bài đăng bằng cả khóa meta và giá trị Nó tương tự như chức năng trước, nhưng ở đây bạn cũng có thể chỉ định một giá trị meta Cũng giống như Get Post ID both by meta key, hàm bên dưới sẽ lấy id của post thỏa mãn CẢ HAI điều kiện là meta key và meta value 1 2 3 4 5 6 7 8 9 10 11 12 function get_post_id_by_metakey_and_value( $meta_key, $meta_value ) { toàn cầu $wpdb; $ids = $wpdb - >get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s", $meta_key, $meta_value ) ); if( count( $ids ) > 1 ) { return $ids; // trả về một mảng ID bài viết } khác { return $ids[0]; // return int of a Post ID } } Nhận ID bài đăng theo ID thuật ngữ (ID danh mục, ID thẻ)Đây là một chức năng ví dụ nhận Nhận ID bài đăng theo ID thuật ngữ. Thuật ngữ ở đây có thể là id danh mục hoặc id thẻ 1 2 3 4 5 6 7 8 9 10 11 12 13 hàm huyhoa_post_id_by_term_id( $term_id ) { toàn cầu $wpdb; $ids = $wpdb - >get_col( $wpdb->prepare( "SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $term_id ) ); if( count( $ids ) > 1 ) { return $ids; // trả về một mảng ID bài viết } khác { return $ids[0]; // return int of a Post ID } } Thông thường, hàm này sẽ trả về một mảng có nhiều giá trị vì cùng một term_id có thể có nhiều mạo từ đi kèm với nó. Ví dụ cùng id chuyên mục là 1 thì có thể có hàng trăm nghìn bài viết cùng chủ đề. Điều tương tự cũng xảy ra với các thẻ Trong URL của bài đăng không có cấu trúc Permalink tùy chỉnhĐể sử dụng tính năng này, bạn phải tạm thời chuyển cài đặt permalink của mình trong Settings > Permalink set to Plain. Bây giờ tham số p trong URL là ID của bài đăng ID bài đăng trong URL của bài đăng không có cấu trúc Permalink tùy chỉnhTrong URL trên trang chỉnh sửa bài đăngNếu bạn có quyền chỉnh sửa bài đăng, Bạn có thể tìm thấy ID của bài đăng trong URL khi chỉnh sửa bài đăng đó ID Trong URL trên trang chỉnh sửa bài đăngBạn thậm chí không cần mở trang chỉnh sửa bài đăng. Chỉ cần di chuột qua liên kết «Chỉnh sửa» hoặc trên tiêu đề bài đăng trong khu vực quản trị rồi nhìn vào thanh trạng thái của trình duyệt (phần dưới cùng bên trái của màn hình) bạn sẽ thấy URL chỉnh sửa. chỉnh sửa bao gồm cả ID của bài đăng Nhận id bài đăng từ thanh trạng thái trình duyệtNhận ID bài đăng của FrontPage tĩnhTrang trước tĩnh là một Trang cụ thể được sử dụng làm Trang chủ của trang web. 1 $frontpage_id = get_option( 'page_on_front'< ); hoặc lấy ID của trang Bài viết 1 $blogpage_id = get_option( 'page_for_posts'< ); Trên đây là 10 cách lấy ID bài viết trong WordPress. Cuối bài viết mình sẽ hướng dẫn các bạn một số cách lấy thông tin bài viết dựa trên id của bài viết như. lấy thời gian chỉnh sửa bài đăng, thời gian đăng bài, lấy thuật ngữ theo id bài đăng, lấy URL hiện tại |