WordPress nhận bài đăng bằng slug

Sên WordPress là thứ được sử dụng để truy cập các trang và bài đăng trên WordPress. Ví dụ: nếu tôi có một bài đăng có tiêu đề “Xin chào” thì sên của nó sẽ là “/hello”. WordPress làm điều này để trợ giúp SEO bằng cách có các URL mà con người có thể đọc được. Khái niệm này rất quan trọng khi xây dựng với WordPress vì bạn có thể muốn liên kết đến các trang bằng sên chính xác của chúng

Lưu ý rằng hướng dẫn này giả định rằng bạn biết một số PHP và đang phát triển chức năng WordPress tùy chỉnh bằng cách sử dụng một chủ đề hoặc plugin

Trong bài đăng nhanh này, chúng tôi sẽ giới thiệu một số cách để lấy slug trang trong WordPress bằng PHP

Nhận Slug trang trong WordPress bằng get_post_field

Trong khi trên phần phụ trợ của WordPress, con sên thực sự được gọi là “post_name”. Biến này có thể được truy cập bằng hàm get_post_field(). Đây là cách tốt nhất để lấy một con sên trong WordPress vì nó có thể được sử dụng trong truy vấn chính hoặc vòng lặp để lấy nhiều con sên WordPress

Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn

// Lấy sên của trang hoặc bài đăng hiện tại$slug // Get the current post or page's slug$slug = get_post_field( 'post_name', get_post() );echo $slug;// Get slug for a post or page by ID$post_id = 1;echo get_post_field( 'post_name', $post_id );

xem raw được lưu trữ với ❤ ​​bởi GitHub

Trong các ví dụ trên, tôi chỉ cho bạn cách lấy sên trang hiện tại trong WordPress. Ngoài ra, tôi đã thêm một ví dụ cho phép bạn lấy bất kỳ trang WordPress nào bằng ID bài đăng của họ


Nhận Slug trang hiện tại trong WordPress bằng Global $post

Đối tượng toàn cầu trong WordPress có tên $post mang đối tượng bài đăng hiện tại cho bài đăng hiện tại. Điều này hữu ích khi bạn muốn lấy slug của trang hoặc bài đăng hiện tại

Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn

toàn cầu$bài đăng;global $post;$slug = $post->post_name;

xem raw được lưu trữ với ❤ ​​bởi GitHub


Bây giờ bạn đã biết thêm một chút về WordPress

Tôi hy vọng hướng dẫn này hữu ích, nếu bạn có thắc mắc về phát triển WordPress, hãy cho tôi biết trong phần bình luận bên dưới

Có một số cách để lấy slug của trang hiện tại hoặc bài đăng trong WordPress. Đơn giản nhất, slug của bài đăng hoặc trang có thể được truy xuất bằng cách truy cập thuộc tính post_name của đối tượng bài đăng toàn cầu. Phương thức đầu tiên hiển thị bên dưới truy cập thuộc tính post_name đó trong biến $post trong khi tùy chọn thứ hai bên dưới sử dụng phương thức get_post_field

Cả hai phương pháp bên dưới đều sử dụng biến $post toàn cầu, nhưng nếu bạn chỉ có quyền truy cập vào id bài đăng của trang hiện tại, thì tùy chọn thứ hai cung cấp một phương pháp thay thế sử dụng post_id để lấy sên

lựa chọn 1. Truy cập thuộc tính post_name của Biến bài đăng toàn cầu

Truy cập thuộc tính post_name của đối tượng bài đăng toàn cầu

global $post;
$page_slug = $post->post_name;

Đối với thông tin của bạn, trong WordPress, các trang là một loại bài đăng, đó là lý do tại sao biến $post cung cấp cho bạn thông tin về trang. Ngoài ra, đối tượng bài đăng toàn cầu chứa dữ liệu được liên kết với trang hoặc bài đăng hiện tại đang được truy cập. Biến toàn cầu này có sẵn bên trong vòng lặp của WordPress. Vòng lặp WordPress là “mã PHP được WordPress sử dụng để hiển thị các bài đăng” trên mỗi https. // codex. báo chí. org/The_Loop.  

Lựa chọn 2. Sử dụng phương thức get_post_field

Bạn cũng có thể sử dụng chức năng get_post_field để lấy trang hiện tại hoặc đăng slug. NẾU bạn đang ở trong vòng lặp, đoạn mã này giống như sau

$page_slug = get_post_field( 'post_name' );

Nếu bạn ở bên ngoài vòng lặp đăng bài, bạn sẽ cần đối số thứ hai cho hàm get_post_field. Đối với đối số thứ hai đó, bạn có thể sử dụng giá trị $post_id. Xem mã dưới đây làm ví dụ

Tiết lộ. Một số liên kết trong bài đăng này là liên kết liên kết, nghĩa là nếu bạn nhấp vào một trong các liên kết và mua một mặt hàng, tôi có thể nhận được hoa hồng. Tuy nhiên, tất cả các ý kiến ​​​​là của riêng tôi và tôi không chấp nhận thanh toán cho các đánh giá tích cực. Đây chỉ là một cách nhỏ để tôi kiếm tiền từ thời gian viết cho bạn

Gần đây tôi gặp trường hợp cần lấy đối tượng bài đăng cho loại bài đăng tùy chỉnh trong WordPress - tôi phải thực hiện việc này bằng một con sên mà người dùng đã nhập. Có một chức năng (get_page_by_path) mà ban đầu tôi nghĩ là tìm đối tượng đăng bài cho các trang nhưng thực ra nó đi sâu hơn

Hàm nhận 3 đối số

  1. Đường dẫn/slug mà bạn đang tìm kiếm
  2. Cách bạn muốn bài đăng được trả về - về cơ bản là một mảng hoặc đối tượng
  3. (Các) loại bài đăng bạn muốn tìm kiếm thông qua

Vì vậy, để có được đối tượng bài đăng (hãy gọi loại bài đăng tùy chỉnh của tôi là 'cuốn sách'), tôi chỉ cần làm như sau

$book = get_page_by_path( 'the-cpt-slug', OBJECT, 'book' );

Bây giờ tôi đã có đối tượng, tôi có thể tham chiếu nó giống như bất kỳ đối tượng đăng bài nào trong WordPress

$book_content = $book->post_content;
// OR
$book_id = $book->ID;

Để biết thêm thông tin, bạn có thể truy cập tham khảo hàm get_page_by_path trên WordPress

Mệt mỏi vì lưu trữ WordPress trung bình?