Wordpress wp_query ngày đăng

Truy xuất ngày xuất bản của bài đăng trong WordPress là một nhiệm vụ dễ thực hiện. Chúng tôi sẽ thử truy xuất các thuộc tính của bài đăng bằng ID bài đăng cụ thể hoặc id bài đăng được truy vấn hiện tại để chỉ cho bạn cách làm việc với Ngày đăng trong WordPress bằng hàm get_the_date

Truy xuất ngày xuất bản của bài đăng WordPress bằng chức năng get_the_date

Chức năng get_the_date được WordPress giới thiệu để cho phép các nhà phát triển lấy ngày xuất bản của một ID bài đăng cụ thể hoặc bài đăng hiện tại trong một vòng lặp

Hàm này nhận 2 đối số tùy chọn

  1. Định dạng ngày tháng. bạn có thể chỉ định định dạng, sử dụng định dạng ngày PHP
  2. Đăng ID hoặc đối tượng WP_Post. lấy tiêu đề của bài viết cụ thể

Cú pháp get_the_date trong WordPress

get_the_date(string $format = '', int|WP_Post $post)

Tiếp tục đọc các ví dụ…

Nhận ngày xuất bản bài đăng cụ thể trong WordPress bằng ID bài đăng

Trong ví dụ này, chúng tôi sẽ cố gắng in ngày xuất bản của bài đăng có ID bằng 1

$postId = 1;
echo get_the_time('Y-m-d', $postId);

Nhận ngày xuất bản của bài viết hiện tại trong WordPress

Nếu bạn muốn in ngày xuất bản của bài đăng hiện tại (bên trong vòng lặp hoặc tệp single.php), hãy sử dụng hàm get_the_time không có id bài đăng

Ví dụ về việc sử dụng chức năng này bên trong một vòng lặp

$posts = new WP_Query(array('post_type' => 'post')); //retrieve posts
if($posts->have_posts() ) {
    while($posts->have_posts() ) {
        $posts->the_post();
        echo get_the_time('Y-m-d'); //Echos date in Y-m-d format.
    }
}

$posts->the_post() sẽ thay đổi đối tượng toàn cầu $post trong WordPress. đối tượng này là tham chiếu cho hàm get_the_time khi bạn không chỉ định ID

Hãy nhớ đặt lại đối tượng toàn cầu $post về mặc định của WordPress sau khi thay đổi nó. Bạn chỉ cần sử dụng chức năng

$postId = 1;
echo get_the_time('Y-m-d', $postId);
2 để đặt lại sau các vòng lặp tùy chỉnh

Nếu bạn là một sinh viên chăm chỉ, hãy tiếp tục đọc. bạn có thể đọc Cách đặt ngày và giờ xuất bản cho bài đăng trên WordPress theo chương trình?

Điểm khởi đầu tốt cho khách truy cập mới của tôi là Cách tạo plugin Hello World cho WordPress trong bài viết 3 bước chứa các mẹo hay cho những ai muốn sử dụng mã và phương pháp tiêu chuẩn

Trong loạt bài này về

2
63, bạn đã học cách sử dụng lớp
2
63 để tạo các truy vấn tùy chỉnh trong tệp chủ đề hoặc plugin của mình

Phần này của loạt bài sẽ đưa bạn qua các đối số mà bạn có thể sử dụng để tạo các truy vấn ngày tháng đơn giản và phức tạp, để xuất các bài đăng được xuất bản vào, trước, sau hoặc giữa các ngày nhất định

Tôi sẽ chỉ cho bạn những tham số nào có sẵn cho bạn và cách sử dụng chúng để viết các truy vấn của bạn. Nhưng trước tiên, hãy nhắc lại cách lập luận hoạt động trong

2
63

Tóm tắt về cách các đối số hoạt động trong WP_Query

Trước khi bắt đầu, chúng ta hãy tóm tắt nhanh về cách thức hoạt động của các đối số trong 

2
63. Khi viết mã 
2
63 trong chủ đề hoặc plugin của mình, bạn cần bao gồm bốn yếu tố chính

  • các đối số cho truy vấn, sử dụng các tham số sẽ được đề cập trong hướng dẫn này
  • bản thân truy vấn
  • vòng lặp
  • kết thúc. đóng thẻ if và while và đặt lại dữ liệu bài đăng

Trong thực tế, điều này sẽ trông giống như sau

1

2
3
$args = array(
4
    // Arguments for your query.

5
);
6

0

1

2

3

4

5

6

7

8

9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
$args = array(
0
$args = array(
1
$args = array(
2
$args = array(
3

Các đối số là thứ cho WordPress biết dữ liệu nào cần tìm nạp từ cơ sở dữ liệu và đó là những đối số mà tôi sẽ đề cập ở đây. Vì vậy, tất cả những gì chúng ta đang tập trung ở đây là phần đầu tiên của mã

1
$args = array(
2
    // Arguments for your query.

3
);

Như bạn có thể thấy, các đối số được chứa trong một mảng. Bạn sẽ học cách viết mã chúng khi bạn làm việc thông qua hướng dẫn này

Mã hóa đối số của bạn

Có một cách cụ thể để mã hóa các đối số trong mảng, như sau

1
$args = array(
2
4
3_______12_______
4
5
4
4
7
5
);

Bạn phải đặt các tham số và giá trị của chúng trong một dấu ngoặc kép, sử dụng 

2
68 giữa chúng và phân tách chúng bằng dấu phẩy. Nếu bạn hiểu sai, WordPress có thể không thêm tất cả các đối số của bạn vào truy vấn hoặc bạn có thể nhận được màn hình trắng

Thông số ngày

Bạn cũng có thể sử dụng các tham số để truy vấn các bài đăng có ngày xuất bản vào một ngày nhất định. Bạn có thể cụ thể như bạn muốn với ngày tháng, chẳng hạn như sử dụng năm và tháng để truy xuất một số bài đăng

Bạn có thể viết một tập hợp các đối số đơn giản hoặc bạn có thể sử dụng

2
69 để tạo các mảng lồng nhau và chạy các truy vấn phức tạp hơn. Hãy bắt đầu với các đối số đơn giản hơn

Đối số ngày đơn giản

Các tham số bạn có thể sử dụng để truy vấn theo ngày là

  • 2
    70 (int). năm có bốn chữ số (e. g.
    2
    71)
  • 2
    72 (int). Số tháng (từ
    2
    73 đến
    2
    74)
  • 2
    75 (int). Tuần trong năm (từ
    2
    76 đến
    2
    77). Chế độ phụ thuộc vào tùy chọn
    2
    78 mà bạn có thể chỉnh sửa trong trang Cài đặt của mình trong phần quản trị
  • 2
    79 (int). Ngày trong tháng (từ
    2
    73 đến
    2
    81)
  • 2
    82 (int). Giờ (từ
    2
    76 đến
    2
    84)
  • 2
    85 (int). Phút (từ
    2
    76 đến
    2
    87)
  • 2
    88 (int). Thứ hai (
    2
    76 đến
    2
    87)
  • 2
    91 (int). NămTháng (e. g.
    2
    92)

Vì vậy, hãy tưởng tượng bạn đang chạy một trang web sự kiện sử dụng ngày xuất bản cho từng sự kiện để biểu thị ngày bắt đầu sự kiện. Để muốn hiển thị tất cả các sự kiện, quá khứ và tương lai, xảy ra trong năm 2015, đây là các đối số bạn cần

1
$args = array(
2
    // Arguments for your query.

3_______12_______
    // Arguments for your query.

5
4
15_______7
5
15_______9
6
5
1

0
5
3

2
);

Lưu ý rằng tôi đã sử dụng

2
93 và
2
94 cho trạng thái bài đăng, vì các bài đăng được lên lịch cho một ngày trong tương lai không được truy vấn theo mặc định

Hoặc nếu bạn muốn tự động hiển thị các sự kiện xảy ra trong năm nay và không cập nhật truy vấn của mình hàng năm, trước tiên bạn có thể lấy năm hiện tại rồi chuyển năm đó vào đối số truy vấn của mình

1
5
7
2
3
___
$args = array(
4
    // Arguments for your query.

3_______16_______15_______5
6
15_______7

0
    // Arguments for your query.

9

2
5
1

4
6
2

5
);

Đối số ngày phức tạp

Để sử dụng nhiều tham số ngày nhằm tạo các truy vấn phức tạp hơn, bạn sử dụng tham số

2
69. Điều này cho phép bạn truy cập vào nhiều thông số hơn

  • 2
    70 (int). năm có bốn chữ số (e. g.
    2
    71)
  • 2
    98 (int). Số tháng (từ
    2
    73 đến
    2
    74)
  • 3
    01 (int). Tuần trong năm (từ
    2
    76 đến
    2
    77)
  • 2
    79 (int). Ngày trong tháng (từ
    2
    73 đến
    2
    81)
  • 2
    82 (int). Giờ (từ
    2
    76 đến
    2
    84)
  • 2
    85 (int). Phút (từ
    2
    76 đến
    3
    12)
  • 2
    88 (int). Thứ hai (
    2
    76 đến
    3
    12)
  • 3
    16 (chuỗi/mảng). Ngày truy xuất bài đăng sau.  
  • 3
    17 (chuỗi/mảng). Ngày truy xuất bài đăng trước đó.  
  • 3
    18 (boolean). Đối với sau/trước, liệu giá trị chính xác có được khớp hay không
  • 3
    19 (chuỗi). Một toán tử bạn sử dụng để so sánh dữ liệu trong cơ sở dữ liệu với các đối số của bạn. Các giá trị có thể là 
    3
    20,
    3
    21,
    3
    22,
    3
    23,
    3
    24,
    3
    25,
    3
    26,
    3
    27,
    3
    28,
    3
    29,
    3
    30,
    3
    31,
    3
    32, và
    3
    33
  • 3
    34 (chuỗi). Cột cơ sở dữ liệu để truy vấn. mặc định là
    3
    35
  • 3
    36 (chuỗi).
    3
    37 hoặc
    3
    38, cách so sánh các mảng con. Giá trị mặc định là 
    3
    38

Tham số

2
69 được định dạng như thế này

1
$args = array(
2
6
8
3

00
4
10_______02
5
10_______04
6

06

0
);

Bạn cũng có thể tạo nhiều mảng và xác định cách chúng sẽ được so sánh bằng tham số quan hệ. Ví dụ dưới đây sẽ trả về các truy vấn khớp với các đối số trong cả hai mảng

1
$args = array(
2
6
8
3

14_______14_______10_______00
5
10_______18
6

20

0

00

2

18

4

04_______10_______5_______10_______10_______ 7_______

Trong khi mã bên dưới sẽ tìm nạp các bài đăng khớp với các đối số trong một trong hai mảng (hoặc cả hai)

1
$args = array(
2
6
8
3

36
4
10_______00
5
10_______18
6
___

20

0

00

2

18

4

04_______10_______5_______10_______10_______7_______

Hãy minh họa điều này với một ví dụ. Giả sử bạn đang làm việc trên một trang web của trường đại học và muốn hiển thị các bài đăng từ năm học này. Năm học bắt đầu từ ngày 1 tháng 9 năm 2014 đến ngày 31 tháng 8 năm 2015, vì vậy bạn cần tìm các bài đăng trong các tháng và năm có liên quan

1
$args = array(
2
6
8
3

36
4

00
5

62
6

64

0

20

2

00

4

70

5

72

7

04

9

06
2
0
);

Lưu ý rằng tham số

2
98 nhận một chuỗi cho các đối số của nó, không phải một mảng

Các thông số trước và sau

Một cách khác cho ví dụ trên là xác định ngày trước và/hoặc sau ngày bạn muốn hiển thị bài đăng, sử dụng tham số

3
17 và
3
16. Chúng có ba đối số

  • 2
    70 (chuỗi). Chấp nhận bất kỳ năm có bốn chữ số nào. trống theo mặc định
  • 2
    98 (chuỗi). Tháng trong năm (
    2
    73 đến
    2
    74). Giá trị mặc định là 
    2
    74
  • 2
    79 (chuỗi). Ngày trong tháng (
    2
    73 đến
    2
    81). Mặc định là ngày cuối cùng của tháng

Bạn cũng có thể sử dụng một chuỗi cho ngày, miễn là nó tương thích với định dạng php

3
52

Vì vậy, quay lại ví dụ của tôi về hiển thị các bài đăng cho năm học này, tôi có thêm hai tùy chọn. Đầu tiên, tôi có thể sử dụng một mảng lồng nhau với các tham số năm và tháng

1
$args = array(
2
6
8
3

14
4

00
5

88
6

90

0

92

2

94

4

96

5

20

7

00

9
2
02
2
0
2
04
2
2
2
06
2
4

94
2
5

96
2
7

04
2
8

06
3
0
);

Có một vài điều cần lưu ý ở đây

  • Tôi đã sử dụng
    3
    53 vì các bài đăng cần được xuất bản sau ngày bắt đầu và trước ngày kết thúc của tôi
  • Đối với mỗi mảng lồng nhau, tôi đã sử dụng
    3
    54 để đảm bảo rằng WordPress tìm nạp các bài đăng được xuất bản trong tháng 9 năm 2014 và tháng 8 năm 2015

Tôi cũng có thể viết truy vấn này bằng cách sử dụng một chuỗi cho các ngày

1
$args = array(
2
6
8
3

00
4
4_______24
5
4_______26
6
___
2
28

0

04

2

06

4
);

Lưu ý rằng do cách thức hoạt động của chuỗi ngày nên việc sử dụng ngày độc quyền sẽ đáng tin cậy hơn. Điều này là do nếu bạn sử dụng chuỗi ngày, chuỗi này sẽ được chuyển đổi thành 00. 00 vào ngày đó. Vì vậy, để làm cho nó hoạt động, hãy sử dụng cả thời gian trong chuỗi của bạn hoặc làm như tôi đã làm và sử dụng ngày trước ngày bạn muốn hiển thị bài đăng (và sau ngày bạn muốn hiển thị bài đăng cho đến)

Một việc khác bạn có thể làm với tham số ngày là hiển thị các bài đăng được xuất bản hôm nay. Quay trở lại trang sự kiện của tôi, giả sử tôi muốn hiển thị một biểu ngữ lớn trên trang chủ của mình vào ngày diễn ra sự kiện. Tôi có thể viết một truy vấn cho vấn đề này và sau đó xuất thông tin chi tiết về sự kiện nếu tìm thấy. Đây là những lập luận

1
$args = array(
2
    // Arguments for your query.

3
3
    // Arguments for your query.

5
4
    // Arguments for your query.

7
5
    // Arguments for your query.

9
6
5
1

0
6
8

2

00

4
2
52

5
2
54

7
2
56

9

04
2
0

06
2
2
);

Sử dụng hàm

3
55 trả về ngày hiện tại—Tôi đã sử dụng hàm này ba lần để đảm bảo tôi nhận được ngày, tháng và năm chính xác. Lưu ý rằng tôi cũng đã đưa vào đối số
3
56 để đảm bảo rằng một sự kiện xảy ra sau ngày hôm nay được đưa vào

Tóm lược

Đôi khi bạn không chỉ muốn truy vấn tất cả các bài đăng đã xuất bản. Bằng cách sử dụng lớp

2
63, bạn có thể tạo nhiều truy vấn cụ thể hơn để xuất các bài đăng theo ngày, bao gồm các bài đăng bạn đã xuất bản vào một ngày nhất định, trước một ngày, sau một ngày hoặc giữa một cặp ngày

Các đối số

2
69 kết hợp với các tham số khác, chẳng hạn như
3
56, được đề cập chi tiết hơn ở những nơi khác trong loạt bài này