Đặt ngày đăng trước năm 1970


10

Tôi có một loại bài tùy chỉnh được gọi là sách. Ngày xuất bản sách là từ 1700 đến 1900.

Tôi muốn đặt ngày đăng thành những ngày này (vì vậy tôi có thể truy vấn kết quả được sắp xếp theo năm) nhưng dường như tôi không thể có ngày được đặt trước năm 1970 ngày 1 tháng 1.

Có thể bằng cách nào đó làm điều đó?


Theo như tôi có thể nói ngày đăng bài được giới hạn vào năm 1902.
Wyck

Tôi đã xem xét điều này và post_datetrong cơ sở dữ liệu đặt chính xác cho bất kỳ ngày nào tôi đã thử. Tuy nhiên, post_date_gmtđược đặt không chính xác là ngày 1 tháng 1 năm 1970-- ngày bắt đầu của thế giới . Vì vậy, đừng cố gắng tạo ra lĩnh vực đó. Làm những gì toscho gợi ý.
s_ha_dum

+1 câu hỏi hay! Tìm kiếm năm 1970 có kết quả thú vị ở đây và tại SO . Plugin dường như không được mã hóa tốt, nhưng có thể đáng xem ...
brasofilo

Câu trả lời:


10

Không sử dụng post_datetrường cho bất cứ điều gì nó không được thực hiện cho. Sử dụng một trường meta bài thay thế. Điều post_datenày bị ràng buộcpost_date_gmt , bạn sẽ nhận được tác dụng phụ kỳ lạ thậm chí bạn có thể có được một ngày sớm hơn vào đó.

Vì vậy, tạo các trường meta bài và truy vấn những người theo truy vấn thuế . Bỏ qua trường mặc định.

Trả lời nhận xét của bạn: Không sử dụng phân loại.

  1. Phân loại được xây dựng để cho phép nhiều điều khoản trên mỗi bài đăng (bỏ qua các định dạng bài ở đây). Đề án không phù hợp với trường hợp sử dụng của bạn.
  2. Các truy vấn phân loại rất tốn kém, chúng chạy qua ba bảng.
  3. Bạn sẽ phải thay đổi giao diện mặc định để ngăn ngừa tai nạn như nhiều bài tập. Có thể, nhưng không chính xác đơn giản và có thể không tương thích về phía trước.

Tôi cũng đã bắt đầu một plugin quản lý sách, thật không may, nó vẫn ở trạng thái dự thảo, nhưng tôi có một số đề xuất về ngày:

  1. Sử dụng hai loại bài đăng: một cho opus, một cho các phiên bản thực ( opusloại sẽ là cha mẹ cho nhiều phiên bản). Vì vậy, bạn có thể lưu trữ ngày tạo trong opus, ngày xuất bản (ngôn ngữ, biên tập viên, dịch giả, v.v.) trong phiên bản.

  2. Đọc Làm cho <time>an toàn cho các nhà sử học . Ngày trước năm 1970 thật khó khăn.

  3. Hàm ngày và giờ của MySQL không thể xử lý tất cả các trường hợp, bạn kết thúc với một số thói quen tùy chỉnh để sắp xếp, tùy thuộc vào giải pháp của bạn cho (2.).


Cảm ơn! Khách hàng của tôi đã gửi cho tôi một tệp xml với những cuốn sách và tôi đã nhập nó vào wordpress. Tôi chỉ có nhiều năm cho các cuốn sách nên tôi quyết định tạo một phân loại tùy chỉnh cho các năm, nhưng sau đó tôi phát hiện ra rằng tôi không thể đặt hàng truy vấn dựa trên điều này. Nhưng nếu tôi có thể đặt hàng theo lĩnh vực tùy chỉnh, thì tôi đoán nó cũng tốt theo cách đó.
passatgt

Hãy để tôi hỏi bạn, bạn nghĩ gì, nó có phải là một giải pháp đủ tốt để sử dụng phân loại tùy chỉnh trong nhiều năm không? Tôi nghĩ rằng tôi có thể tạo một truy vấn sql tùy chỉnh để sắp xếp kết quả dựa trên tên thuật ngữ (vì cấu trúc db về cơ bản là giống với giải pháp meta post) và tôi nghĩ việc quản lý năm + sách trong phần phụ trợ dễ dàng hơn một chút .
passatgt

@passatgt Xem cập nhật của tôi. Ngắn gọn: không, đừng làm vậy. :)
fuxia

Hiểu rồi. Đáng nói là tôi có 25.000 cuốn sách :)
passatgt

1

Plugin này sử dụng Thư viện ngày ADOdb của John Lim của PHP ở mọi nơi, đó là - tôi xin trích dẫn - "tạo định dạng ngày với ngày trước năm 1970 một cách quyến rũ".


Plugin đó thực hiện nhiều hơn những gì OP yêu cầu và không rõ định dạng ngày được sử dụng bởi plugin hay nếu nó cũng cho phép định dạng cùng ngày cho các chức năng cốt lõi của WordPress. Bạn có biết câu trả lời cho bất kỳ câu hỏi nào không?
s_ha_dum

Tôi chỉ muốn làm nổi bật thư viện của Lim và cách nó được triển khai trong một plugin WP. Đối với câu hỏi thứ hai của bạn, các chức năng cốt lõi không bị thay đổi, plugin lưu trữ ngày tháng trong bảng cơ sở dữ liệu tùy chỉnh.
diggy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.