Sự khác biệt giữa get_post_permalink và get_permalink là gì?


11

Tôi đã đọc tài liệu trên get_post_permalink()get_permalink()không hiểu sự khác biệt giữa hai. Nó có thể là bởi vì tôi không hiểu mục đích của các $leavename$samplecác thông số. Bất cứ ai cũng có thể giải thích những điều đó, và khi một chức năng sẽ hữu ích hơn các chức năng khác? Cảm ơn!

Câu trả lời:


6

Các get_post_permalink()funciton fetches các liên kết đến một bài tùy thuộc vào liên kết của nó "vĩnh viễn" cộng với viết lại quy tắc tùy chỉnh của bạn mà thay đổi ?p=123vào cho ví dụ my-beautiful-sunday-diary. Các get_permalink()chức năng là nhiều hơn "cơ bản", nhưng cũng linh hoạt hơn trong những gì nó làm: Đối với một post_typesố

  • page, nó sử dụng get_page_link()
  • attachment, nó sử dụng get_attachment_link()
  • post, nó sử dụng get_post_link()

Nó cũng xử lý việc hiển thị các permalinks termlike categoryvà date. Cuối cùng, nó sẽ thay thế liên kết "đẹp" trong của bạn home_url()hoặc chỉ trả về liên kết thô nếu không có quy tắc viết lại tùy chỉnh nào được chỉ định. Cuối cùng, nó đính kèm một bộ lọc chung:

/**
 * Filters the permalink for a post.
 *
 * Only applies to posts with post_type of 'post'.
 *
 * @since 1.5.0
 *
 * @param string  $permalink The post's permalink.
 * @param WP_Post $post      The post in question.
 * @param bool    $leavename Whether to keep the post name.
 */
return apply_filters( 'post_link', $permalink, $post, $leavename );

Hy vọng rằng làm rõ chủ đề.

ProTip: Nếu bạn cần thay đổi peramlinks trong plugin, hãy đi với các bộ lọc cụ thể bên trong get_attachment_link(), get_post_link()v.v. Chỉ khi bạn đang làm việc trên một trang web duy nhất và không có kế hoạch phân phối mã của mình hoặc nếu bạn đang viết một plugin nhắm mục tiêu công cụ, sau đó đi với bộ lọc chung ở trên. Khác, bạn sẽ nuke tất cả các tác giả chủ đề nỗ lực và bắt đầu một cuộc đua ưu tiên gọi lại.


2

Một người khác chắc chắn sẽ giải thích tốt hơn tôi. Như tôi chỉ sử dụngget_permalink()

Chúng hầu hết tương tự nhau vì cả hai đều trả về permalink bài, get_permalinksử dụng get_post_permalink(cho post_types) và có thể được lọc. Nó cũng sẽ được sử dụng để truy xuất một liên kết trang, tệp đính kèm ... nơi get_post_permalinkdường như được dành riêng cho post_types.

BIÊN TẬP:

Về việc sử dụng $leavename, có vẻ như không cần sử dụng front-end (và thậm chí ở back-end) vì nó trả lại sên cơ sở hạ tầng, theo loại bài đăng của liên kết.

 echo get_permalink(123, true);

Trả về lược đồ viết lại cho liên kết, có thể được sử dụng

Một bài viết:

 http://example.com/%postname%/

Một sản phẩm:

 http://example.com/%product%/

$ leavename được sử dụng trong get_permalink () trong mảng $ viết lại và đặt làm tham số đầu tiên trong dòng hàm 221

$permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink) );

Có thể hữu ích khi phát hiện ra sên viết lại cho một liên kết cho một nhà phát triển (nhưng tôi nghĩ có một cách tốt hơn để làm điều này)

Hy vọng ai đó sẽ cung cấp thêm chi tiết.


Cảm ơn! Tôi vẫn chưa thực sự rõ ràng về điều này mặc dù. Bạn đã bao giờ sử dụng $ leavename để thay đổi cấu trúc permalink chưa? Tại sao và làm thế nào một người sẽ làm điều đó? Và bạn có nghĩa là get_post_permalink () được sử dụng để truy xuất tài liệu lưu trữ, hoặc bạn đang đề cập đến get_permalink () ở đó? Tôi chưa bao giờ thấy get_post_permalink () được sử dụng cho đến ngày hôm nay khi tôi chạy ngang qua nó được sử dụng chính xác như get_permalink () vì vậy tôi không rõ về sự khác biệt.
Michelle

Tôi đang nói về get_permalink, bạn có nó trong nguồn, nó lấy trang tác giả, danh mục, v.v ... Nó sẽ làm được nhiều hơn get_post_permalink. Get_permalink là một hàm mẫu nếu tôi không nhầm và mạnh mẽ.
Benoti

Hiểu rồi, tôi chỉ không nhận được khi nào chúng ta cần hoặc muốn sử dụng get_post_permalink () - bạn có thể đưa ra một ví dụ về mã không? Và bạn có biết $ leavename và $ sample làm gì không? Tôi cũng chỉ từng sử dụng get_permalink () :-)
Michelle

2
$leavenameđược sử dụng trong quản trị viên, để có được cấu trúc permalink để nó có thể tạo giao diện cho phép bạn chỉnh sửa sên của bài đăng.
Milo
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.