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

Mục lục

5 ví dụ về nhận bài đăng theo id

get 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 đăng

Có 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 id

Chú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 ID

Câ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ó

Truy vấn id bài đăng WordPress

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 () ?>

cuối;?> endwhile; ?>

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.
Để truyền ID cho nó, ta dùng ‘post__in’ => array(25,28,65,72,86) (nhớ cho vào trong mảng nhé).
Dưới đây là ví dụ về cách lấy nội dung cho các bài đăng có ID là 25,28,65,72,86. Vòng lặp foreach được sử dụng ở đây để chạy qua tất cả các giá trị được tìm thấy

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

  • Tiêu đề bài viết 25
  • Tiêu đề bài viết 28
  • Điều 65
  • Điều 72
  • Điều 86

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
Cách 1. sử dụng hàm get_post(), ví dụ.

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 WordPress

Tiế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?
Có nhiều cách để thực hiện, tùy vào từng trường hợp cụ thể. Dưới đây mình giới thiệu 11 cách lấy post-id của một bài viết hoặc một trang với các tình huống cụ thể

Đăng ID trong cơ sở dữ liệu WordPress

Trong 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 ở đó

Truy vấn id bài đăng WordPress
Đăng ID trong PHPMyAdmin của Cơ sở dữ liệu WordPress

Thêm cột ID bài đăng vào Bảng bài đăng WordPress

Cá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)

echo$is; $id;

}

add_action('manage_posts_custom_column', 'push_column_content', 5, 2);

// add_action('manage_pages_custom_column', 'push_column_content', 5, 2);

 

Truy vấn id bài đăng WordPress
Thêm cột ID bài đăng vào Bảng bài đăng WordPress

Nhận ID từ đối tượng Global $post

Ghi 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 đề, SLug

Nhậ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.
Ví dụ.

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_Query

Nế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 meta

Trê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ẻ

Để 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

Truy vấn id bài đăng WordPress
ID bài đăng trong URL của bài đăng không có cấu trúc Permalink tùy chỉnh

Trong URL trên trang chỉnh sửa bài đăng

Nế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 đó

Truy vấn id bài đăng WordPress
ID Trong URL trên trang chỉnh sửa bài đăng

Bạ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

Truy vấn id bài đăng WordPress
Nhận id bài đăng từ thanh trạng thái trình duyệt

Nhận ID bài đăng của FrontPage tĩnh

Trang trước tĩnh là một Trang cụ thể được sử dụng làm Trang chủ của trang web.
Nếu bạn muốn lấy ID của trang chủ tĩnh đó, bạn có thể sử dụng đoạn mã sau để lấy ID.

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