Sự khác biệt giữa hàm the_permalink () và get_permalink ()


9

Trong WordPress Tôi đang sử dụng cả hai the_permalink()get_permalink()chức năng, nhưng tôi không thể nhận được bất kỳ sự khác biệt trong sản lượng của cả hai chức năng. Sự khác biệt giữa cả hai chức năng là gì?

Câu trả lời:


16

the_permalink echos ra permalink của bài hiện tại để frontend.

get_permalinktuy nhiên trả về nó như một biến, nhưng không lặp lại. Bạn cũng có thể chuyển ID bài đăng cho nó nếu bạn muốn permalink của bài đăng khác.

the_permalink tương đương với:

echo get_permalink();

Đó là rất gần với những gì nó thực sự làm. Đây là việc thực hiện the_permalink:

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}

3
Nó có nghĩa là tất cả các hàm như the_ID () và get_ID () cũng có những khác biệt giống như thế này. Xin lỗi nhưng tôi chưa quen với wordpress, tại sao lại hỏi
AliasgerSW

@AliasgerSW đó là mô hình, có một số trường hợp ngoại lệ, nhưng nói chung là như vậy
Nicolai

@AliasgerSW khi nghi ngờ, hãy xem mã. QueryPosts là một trang web tuyệt vời để tìm kiếm mã nguồn của các chức năng WordPress.
shea

@ AliasgerSW nó được tạo bởi chính @Rarst của chúng tôi
shea

@shea QueryPosts đã nghỉ hưu. : - (\
Tôi là người ngu ngốc nhất

3

Nếu bạn nhìn vào Codex WordPress về điều này, bạn sẽ thấy rằng nó get_permalink()được sử dụng bên ngoài vòng lặp. the_permalink()là để sử dụng trong vòng lặp. Đó là cách dễ nhất để xem xét nó.


có thể là cách dễ dàng để xem xét nó, nhưng không phải là một cách hoàn chỉnh
Nicolai

Chắc chắn, câu trả lời @Tom J Nowell ♦ ngắn gọn hơn nhiều. Tốt hơn nhiều và được giải thích rõ :-)
Matt Royal

-1

the_permalink()được sử dụng trong các vòng lặp bài viết, như the_title(). Tìm hiểu thêm về các vòng lặp trong The Loop .

get_permalink()có thể được sử dụng trong các vòng lặp hoặc bên ngoài các vòng lặp. Trong các vòng lặp, hàm trả về (không lặp lại) permalink bài hiện tại. Nhưng các vòng lặp bên ngoài, nó đòi hỏi một ID bài.

Ví dụ:

echo get_permalink( 1 );

Điều này sẽ hiển thị permalink trang hiện tại:

echo get_permalink();

1
thực ra nó không yêu cầu ID ngoài vòng lặp
Nicolai
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.