15 chức năng WordPress hữu ích mà tất cả các nhà phát triển nên biết
WordPress có đầy đủ các chức năng tuyệt vời cho các nhà phát triển của chúng tôi sử dụng. Chúng tôi có thể kéo danh sách bài đăng ra khỏi không khí mỏng, thao túng hầu hết mọi thứ về chúng, lấy bất kỳ người dùng nào chúng tôi muốn và hiển thị các kết nối phương tiện truyền thông xã hội của họ trong nháy mắt.
Tuy nhiên, có khá nhiều chức năng dường như bị bỏ qua mà không rõ nguyên nhân. Tôi đã mã hóa với WordPress khoảng 8 năm nay và thỉnh thoảng tôi vẫn tìm thấy một cái gì đó mới! Hãy xem một số chức năng bỏ qua yêu thích và học cách sử dụng chúng trên đường đi.
antispambot ()
Tôi thường nhướng một vài cái lông mày với cái này, nó dường như là một trong những chức năng được giấu kỹ nhất trong cơ sở mã.
thay thế các ký tự bằng các thực thể HTML là một cách để che giấu địa chỉ email từ những kẻ phá hoại ác.antispambot ()
$ email = '[email protected]'; echo 'Bạn có thể liên hệ với tôi tại'. antispambot ($ email). ' Bất cứ lúc nào'.
Mặc dù đây là một mẩu tin hữu ích, nó cũng là một ví dụ về lý do tại sao một số người chỉ trích WordPress - đây là một chức năng được đặt tên khủng khiếp. Từ việc đọc tên hàm, bạn không biết nó làm gì.
human_time_diff ()
Khi tôi lần đầu tiên biết về chức năng này khoảng một năm trước, tôi đã nghĩ rằng nó phải là một bổ sung gần đây mà tôi đã bỏ qua trong một thay đổi. Không hẳn…
Chức năng này - tạo ra sự khác biệt giữa hai dấu thời gian - đã có trong phiên bản 1.5 (đó là ngày 17 tháng 2 năm 2018!).
Đoạn trích tuyệt vời sau đây tôi đã mượn từ codex cho thấy cách đây một bài đăng hiện tại được xuất bản cách đây bao lâu. Nó sử dụng ngày xuất bản của bài viết là đối số đầu tiên và ngày hiện tại là ngày thứ hai.
echo 'Bài đăng này đã được xuất bản'. human_time_diff (get_the_time ('U'), current_time ('dấu thời gian')). "Trước đây";
get_post_meta ()
Chịu đựng tôi ở đây, tôi biết đây là một chức năng được sử dụng tốt, tuy nhiên, làm thế nào nó hoạt động không phải là kiến thức quá phổ biến. Trước hết, bằng cách bỏ qua các tham số thứ hai và thứ ba, bạn có thể lấy tất cả siêu dữ liệu cho một bài đăng.
$ all_meta = get_post_meta (14);
Ngay cả khi bạn chỉ lấy dữ liệu cho một khóa duy nhất, tất cả postmeta vẫn được kéo.
Lý do thực sự khá logic. Siêu dữ liệu được sử dụng ở nhiều nơi. Nếu
truy vấn cơ sở dữ liệu mỗi khi nó được sử dụng, chúng tôi sẽ kết thúc với quá nhiều truy vấn. Thay vào đó, nếu bạn kéo siêu dữ liệu, nó sẽ lưu trữ tất cả và sử dụng các giá trị được lưu trong bộ nhớ cache trên tất cả các lần truy xuất siêu dữ liệu tiếp theo.get_post_meta ()
wp_upload_bits ()
Chức năng này là một thẳng chức năng tải lên tập tin. Mặc dù nó không di chuyển tệp vào thư mục tải lên và thêm nó vào phần phương tiện WordPress, nhưng nó cực kỳ tiện lợi và bạn luôn có thể làm phần còn lại với
chức năng.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
Một số giải thích có sẵn cho việc này: tham số đầu tiên là tên tệp. Thứ hai là khấu hao vì vậy nó nên được đặt thành null (eyeroll tại tính nhất quán của WordPress). Tham số thứ ba là nội dung thực tế của tệp.
get_post_field ()
Trước đây tôi đã thấy một vài ví dụ trong đó ai đó đã viết một vòng lặp để có được số lượng bình luận cho một bài đăng hoặc viết một truy vấn cơ sở dữ liệu chuyên dụng cho nó. Bạn không cần chúng, cái bạn cần là
. Chức năng này lấy giá trị của một trường cho một bài trong cơ sở dữ liệu. Hãy lấy một số bình luận!get_post_field ()
Bài này có bình luận.
wpautop ()
Chức năng này đã được đưa ra ánh đèn sân khấu một chút, nhưng nó vẫn chưa được biết đến. Nó tương tự như bản địa PHP nl2br
nhưng thay vì tạo ra các dòng mới, nó kết thúc nội dung của bạn trong đoạn văn.
Điều này hữu ích nếu bạn có một hộp văn bản và bạn muốn đảm bảo rằng khi người dùng tạo các đoạn văn có ngắt dòng đôi, chúng vẫn hiển thị ở mặt trước..
Người dùng của chúng tôi nói gì
wp_is_mobile ()
Hàm được đặt tên khéo léo này phát hiện khi người dùng ở trên thiết bị di động và cho phép bạn hiển thị nội dung phù hợp. Vì đây là thẻ có điều kiện nên nó trả về đúng hoặc sai tùy theo kịch bản.
Truy cập trang web của chúng tôi trên máy tính để bàn của bạn để có trải nghiệm người dùng phong phú hơn
wp_redirect ()
Ví dụ cuối cùng cho thấy một chức năng gọn gàng khác:
. Điều này nên được sử dụng thay cho bản địa PHP wp_redirect ()
tiêu đề ()
chức năng. Chức năng chuyển hướng WordPress cho phép bạn đặt URL để chuyển hướng đến và cũng đặt mã trạng thái, tuyệt vời để xử lý chuyển hướng vĩnh viễn là tốt.
// Đối với một URL không còn được sử dụng wp_redirect ('http://website.com/new-url/', 301);
paginating_links ()
Tôi cá rằng chức năng này có phần tối nghĩa của nó một phần do sự phổ biến của plugin WP-PageNavi. Theo mặc định WordPress hiển thị các liên kết trước / tiếp theo ở cuối danh sách bài viết của bạn. WP-PageNavi thay thế bằng số trang.
Điều này thực sự có thể được thực hiện với một công việc nhỏ bằng cách sử dụng
chức năng. Nó có khá nhiều tham số nên tôi khuyên bạn nên xem qua tài liệu.paginating_links ()
Ví dụ sau từ codex cho thấy cách bạn có thể thêm nó vào một vòng lặp mặc định nhưng việc thêm nó vào các vòng lặp tùy chỉnh không phải là quá nhiều.
toàn cầu $ wp_query; $ lớn = 999999999; // cần một số nguyên không thể lặp lại pag pag_links (mảng ('cơ sở' => str numplace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => '? , 'hiện tại' => max (1, get_query_var ('paged')), 'tổng' => $ wp_query-> max_num_pages));
wp_die ()
Hàm này bổ sung cho PHP chết()
chức năng. Sự khác biệt là chức năng này sẽ hiển thị HTML theo kiểu WordPress thay vì chỉ là một văn bản thuần túy. Bạn có thể sử dụng chức năng này để dừng thực thi PHP. Bạn có thể thêm thông báo, tiêu đề và các đối số bổ sung sẽ được hiển thị, ví dụ:
wp_die ("Rất tiếc, bạn không có quyền truy cập vào", "Bị từ chối cấp phép");
has_block ()
Trong phiên bản 5.0, WordPress đã giới thiệu một trình chỉnh sửa dựa trên khối, có tên mã là Gutenberg. Hàm này sẽ xác định xem nội dung có chứa Gutenberg hay không, hoàn toàn giống với has_shortcode ()
chức năng. Nó sẽ trở lại thật
nếu nội dung có chứa một khối, hoặc sai
Nếu nó không.
wp_set_script_translations ()
Vì nhiều phần của giao diện người dùng WordPress sẽ chuyển sang JavaScript, nên nó cần một cách thuận tiện để đăng ký các văn bản có thể dịch trong JavaScript mà WordPress có thể phân tích và hiểu. Sử dụng chức năng này để đặt chuỗi dịch cho tập lệnh của bạn. Dưới đây là một ví dụ:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Một chức năng nổi bật khác trong WordPress 5.0. Chức năng này cho phép bạn đăng ký một khối mới trong trình chỉnh sửa WordPress mới. Khối của bạn sẽ xuất hiện trong trình chỉnh sửa mới và chèn nó vào .
register_block_type ('my-plugin / new-block', mảng ('title' => 'Khối mới', 'icon' => 'megapixel', 'category' => 'widget', 'render_callback' => 'render_feft_callback' ,));
rest_do_Vquest ()
Chức năng này cho phép bạn thực hiện cuộc gọi đến các điểm cuối API WordPress REST thông qua PHP. Khá hữu ích khi bạn cần truy xuất một đầu ra từ API REST để xử lý rằng bạn sẽ xử lý thêm bên trong PHP thay vì ở phía trình duyệt (giao diện người dùng).
$ request = new WP_REST_Request ('GET', "/ wp / v2 / bài viết"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ reply = rest_do_Vquest ($ request); $ data = 200 === $ reply-> get_status ()? $ hồi đáp-> get_data (): [];
rest_preload_api_Vquest ()
Khi xây dựng giao diện người dùng nặng JavaScript trong WordPress thường cần một bộ dữ liệu ban đầu được tải sẵn trong trang. Đây là chức năng sẽ cho phép bạn làm như vậy. Chức năng này có nghĩa là được sử dụng cùng với mảng_reduce
, ví dụ.
// Tải trước dữ liệu chung. $ preload_paths = mảng ('/', '/ wp / v2 / type? bối cảnh ,); preload_data = mảng_reduce ($ preload_paths, 'rest_preload_api_Vquest', mảng ()); wp_add_inline_
Phần kết luận
Đây chỉ là một số chức năng dường như ít được biết đến là phần còn lại. Tôi phát hiện ra một chức năng tuyệt vời mới khoảng hai tháng một lần và tôi chắc chắn rằng những người bạn phát triển của tôi ở ngoài đó có thể làm chúng tôi ngạc nhiên hơn nữa.
Nếu bạn có một chức năng tối nghĩa yêu thích hoặc một chức năng sẽ hữu ích nhưng không khả dụng, hãy cho chúng tôi biết trong các nhận xét!