15 ฟังก์ชั่น WordPress ที่มีประโยชน์นักพัฒนาทุกคนควรรู้
WordPress เต็มไปด้วยฟังก์ชั่นที่ยอดเยี่ยมสำหรับนักพัฒนาที่จะใช้ เราสามารถดึงรายการโพสต์ออกมาจากอากาศจัดการกับเกือบทุกอย่างเกี่ยวกับพวกเขาคว้าผู้ใช้ที่เราต้องการและแสดงการเชื่อมต่อสื่อสังคมของพวกเขาในระยะเวลาอันสั้น.
อย่างไรก็ตามมีฟังก์ชั่นค่อนข้างน้อยซึ่งดูเหมือนว่าจะมองข้ามไปโดยไม่ทราบสาเหตุ ฉันได้รับการเข้ารหัสกับ WordPress มาประมาณ 8 ปีแล้วและในบางครั้งฉันก็ยังพบสิ่งใหม่! ลองดูที่ของฉันบ้าง ฟังก์ชั่นที่ถูกมองข้ามที่ชื่นชอบ และเรียนรู้วิธีใช้งานระหว่างทาง.
antispambot ()
ฉันมักจะยกคิ้วสักสองสามอันด้วยมันดูเหมือนว่าจะเป็นหนึ่งในฟังก์ชั่นที่ซ่อนอยู่ใน codebase.
แทนที่อักขระด้วยเอนทิตี HTML ซึ่งเป็นวิธีหนึ่ง ที่อยู่อีเมลหลอกลวง จากเครื่องขูดที่ชั่วร้าย.antispambot ()
$ email = '[email protected]'; echo 'คุณสามารถติดต่อเราได้ที่' antispambot ($ อีเมล) 'เวลาใดก็ได้'.
แม้ว่านี่จะเป็นชิ้นอาหารอันโอชะที่มีประโยชน์ แต่ก็เป็นตัวอย่างของสาเหตุที่บางคนวิจารณ์ WordPress - นี่เป็นฟังก์ชั่นที่ตั้งชื่ออย่างน่ากลัว จากการอ่านชื่อฟังก์ชั่นคุณไม่รู้ว่ามันทำอะไร.
human_time_diff ()
เมื่อฉันเรียนรู้เกี่ยวกับฟังก์ชั่นนี้เป็นครั้งแรกเมื่อประมาณหนึ่งปีที่แล้วฉันคิดว่ามันน่าจะเป็นส่วนเสริมล่าสุดที่ฉันมองข้ามในการเปลี่ยนแปลง ไม่มาก ...
ฟังก์ชั่นนี้ - ซึ่งแสดงความแตกต่างระหว่างการประทับเวลาสองครั้ง - นับตั้งแต่รุ่น 1.5 (นั่นคือ 17 กุมภาพันธ์ 2018!).
ตัวอย่างที่ดีต่อไปนี้ที่ฉันยืมมาจาก codex แสดงให้เห็นว่าโพสต์ปัจจุบันถูกเผยแพร่เมื่อนานมาแล้ว มันใช้ เผยแพร่วันที่ของการโพสต์เป็นอาร์กิวเมนต์แรก และ วันที่ปัจจุบันเป็นวันที่สอง.
echo 'โพสต์นี้ถูกเผยแพร่' human_time_diff (get_the_time ('U'), current_time ('timestamp')) 'ที่ผ่านมา';
get_post_meta ()
อดทนกับฉันที่นี่ฉันรู้ว่านี่เป็นฟังก์ชั่นที่ใช้งานได้ดี แต่มันทำงานอย่างไรเป็นความรู้ที่ไม่ธรรมดา ก่อนอื่นโดยเว้นพารามิเตอร์ที่สองและสามที่คุณสามารถทำได้ ดึงข้อมูลเมตาทั้งหมดสำหรับโพสต์.
$ all_meta = get_post_meta (14);
แม้ว่าคุณจะคว้าข้อมูลเพียงคีย์เดียว postmeta ทั้งหมดจะถูกดึงออกไป.
เหตุผลนั้นค่อนข้างสมเหตุสมผล ข้อมูลเมตาถูกใช้ในหลาย ๆ ที่ ถ้า
สอบถามฐานข้อมูลทุกครั้งที่มีการใช้งานเราจะจบลงด้วยวิธีสอบถามมากเกินไป แต่ถ้าคุณดึงข้อมูลเมตาข้อมูลนั้นจะเก็บข้อมูลทั้งหมดและใช้ค่าแคชในการดึงข้อมูลเมตาที่ตามมาทั้งหมด.get_post_meta ()
wp_upload_bits ()
ฟังก์ชั่นนี้เป็นแบบตรงขึ้น ฟังก์ชั่นอัพโหลดไฟล์. แม้ว่ามันจะไม่ย้ายไฟล์ไปยังโฟลเดอร์อัพโหลดและเพิ่มลงในส่วนของสื่อ WordPress แต่ก็สะดวกอย่างยิ่งและคุณสามารถทำส่วนที่เหลือด้วย
ฟังก์ชัน.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
คำอธิบายบางอย่างใกล้จะเกิดขึ้น: พารามิเตอร์แรกคือชื่อไฟล์ อันที่สองถูกคิดค่าเสื่อมราคาดังนั้นควรตั้งค่าเป็นโมฆะ (eyeroll ที่ความสอดคล้องของ WordPress) พารามิเตอร์ที่สามคือเนื้อหาจริงของไฟล์.
get_post_field ()
ในอดีตฉันเห็นตัวอย่างค่อนข้างน้อยที่มีคนเขียนลูปเพื่อรับจำนวนข้อคิดเห็นสำหรับโพสต์หรือเขียนแบบสอบถามฐานข้อมูลเฉพาะ คุณไม่ต้องการสิ่งที่คุณต้องการคือ
. ฟังก์ชั่นนี้ ดึงค่าของฟิลด์เดียวสำหรับโพสต์เดียว ในฐานข้อมูล ลองมานับความคิดเห็นกัน!get_post_field ()
โพสต์นี้มี แสดงความคิดเห็น.
wpautop ()
ฟังก์ชั่นนี้ออกมาเป็นจุดเด่นเล็กน้อย แต่ก็ยังไม่เป็นที่ทราบแน่ชัด มันคล้ายกับ PHP พื้นเมือง nl2br
แต่แทนที่จะสร้างบรรทัดใหม่มัน ล้อมเนื้อหาของคุณในย่อหน้า.
สิ่งนี้มีประโยชน์ถ้าคุณมีกล่องข้อความและคุณต้องการตรวจสอบให้แน่ใจว่าเมื่อผู้ใช้สร้างย่อหน้าที่มีตัวแบ่งบรรทัดสองบรรทัดพวกเขายังคงมองเห็นได้ในส่วนหน้าเช่นกัน.
สิ่งที่ผู้ใช้ของเราพูด
wp_is_mobile ()
ฟังก์ชั่นนี้มีชื่อ aptly ตรวจจับเมื่อผู้ใช้อยู่ในอุปกรณ์มือถือและช่วยให้คุณสามารถแสดงเนื้อหาตาม. เนื่องจากนี่คือแท็กแบบมีเงื่อนไขจึงส่งกลับค่าจริงหรือเท็จขึ้นอยู่กับสถานการณ์.
เยี่ยมชมเว็บไซต์ของเราบนเดสก์ท็อปของคุณเพื่อประสบการณ์การใช้งานที่สมบูรณ์ยิ่งขึ้น
wp_redirect ()
ตัวอย่างสุดท้ายแสดงฟังก์ชั่นอื่นที่เรียบร้อย:
. สิ่งนี้ควรใช้แทน PHP ดั้งเดิม wp_redirect ()
ส่วนหัว ()
ฟังก์ชัน ฟังก์ชั่นการเปลี่ยนเส้นทางของ WordPress ช่วยให้คุณสามารถ ตั้งค่า URL เพื่อเปลี่ยนเส้นทางไปยังและตั้งรหัสสถานะ, เหมาะสำหรับการจัดการการเปลี่ยนเส้นทางแบบถาวรเช่นกัน.
// สำหรับ URL ที่ไม่ได้ใช้งานอีกต่อไป wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
ฉันพนันได้เลยว่าฟังก์ชั่นนี้เป็นหนี้ความสับสนในส่วนของความนิยมของปลั๊กอิน WP-PageNavi โดยค่าเริ่มต้น WordPress แสดงลิงค์ก่อนหน้า / ถัดไปที่ท้ายรายการโพสต์ของคุณ. WP-PageNavi แทนที่ด้วยหมายเลขหน้า.
สามารถทำได้จริงด้วยงานเล็กน้อยโดยใช้
ฟังก์ชั่น. มีพารามิเตอร์ค่อนข้างน้อยดังนั้นฉันแนะนำให้อ่านเอกสาร.paginate_links ()
ตัวอย่างต่อไปนี้จาก codex แสดงวิธีที่คุณสามารถเพิ่มลงในลูปเริ่มต้น แต่การเพิ่มลงในลูปที่กำหนดเองนั้นไม่ได้เป็นการยืดมาก.
$ wp_query ทั่วโลก; $ ใหญ่ = 999999999; // ต้องการจำนวนเต็ม echo paginate_links (อาร์เรย์ ('ฐาน' => str_replace ($ ใหญ่, '% #%', esc_url (get_pagenum_link ($ ใหญ่))), 'รูปแบบ' => 'หน้า paged =% #%' , 'current' => สูงสุด (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
ฟังก์ชันนี้เติมเต็ม PHP ตาย()
ฟังก์ชัน ความแตกต่างคือฟังก์ชั่นนี้จะแสดง HTML สไตล์ WordPress แทนข้อความธรรมดา คุณสามารถใช้ฟังก์ชันนี้เพื่อหยุดการเรียกใช้งาน PHP คุณสามารถเพิ่มข้อความชื่อและอาร์กิวเมนต์เพิ่มเติมที่จะแสดงตัวอย่างเช่น:
wp_die ("อ๊ะคุณไม่มีสิทธิ์เข้าถึง", "การอนุญาตถูกปฏิเสธ");
has_block ()
ในเวอร์ชั่น 5.0, WordPress ได้เปิดตัวโปรแกรมแก้ไขบล็อกชื่อรหัส Gutenberg ฟังก์ชั่นนี้จะระบุว่าเนื้อหานั้นมีกูเตนแบร์กหรือไม่ has_shortcode ()
ฟังก์ชัน มันจะกลับมา จริง
หากเนื้อหานั้นมีบล็อกหรือ เท็จ
ถ้าไม่ได้.
wp_set_script_translations ()
เนื่องจากส่วนหนึ่งของส่วนติดต่อผู้ใช้ WordPress กำลังจะย้ายไปที่ JavaScript จึงต้องการวิธีที่สะดวกในการลงทะเบียนข้อความที่แปลได้ใน JavaScript ที่ WordPress สามารถแยกวิเคราะห์และเข้าใจได้ ใช้ฟังก์ชันนี้เพื่อตั้งค่าสตริงที่แปลสำหรับสคริปต์ของคุณ ด้านล่างเป็นตัวอย่าง:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
อีกฟังก์ชั่นที่โดดเด่นใน WordPress 5.0 ฟังก์ชั่นนี้ช่วยให้คุณสามารถลงทะเบียนบล็อกใหม่ในเครื่องมือแก้ไข WordPress ใหม่ บล็อกของคุณจะปรากฏในเครื่องมือแก้ไขใหม่และแทรก .
register_block_type ('my-plugin / new-block', array ('title' => 'บล็อกใหม่', 'ไอคอน' => 'โทรโข่ง', 'หมวดหมู่' => 'วิดเจ็ต', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
ฟังก์ชั่นนี้ช่วยให้คุณสามารถโทรหาจุดปลาย WordPress REST API ผ่านทาง PHP ค่อนข้างมีประโยชน์เมื่อคุณต้องการดึงเอาท์พุทจาก REST API เพื่อประมวลผลว่าคุณจะดำเนินการเพิ่มเติมในด้าน PHP แทนที่จะเป็นในเบราว์เซอร์ (ส่วนหน้า).
$ request = WP_REST_Request ใหม่ ('GET', "/ wp / v2 / โพสต์"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ ขอ); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
เมื่อสร้าง UI ที่มี JavaScript หนักใน WordPress โดยปกติแล้วจะต้องมีชุดข้อมูลเริ่มต้นที่โหลดภายในหน้าเว็บ นี่คือฟังก์ชั่นที่จะให้คุณทำ ฟังก์ชั่นนี้มีไว้เพื่อใช้งานร่วมกับ array_reduce
, ตัวอย่างเช่น.
// โหลดข้อมูลทั่วไปล่วงหน้า $ preload_paths = array ('/', '/ wp / v2 / ประเภท? บริบท = แก้ไข', '/ wp / v2 / taxonomies? per_page = -1 & บริบท = แก้ไข', '/ wp / v2 / ธีม? สถานะ = ใช้งาน' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data))
ข้อสรุป
เหล่านี้เป็นเพียงฟังก์ชั่นบางอย่างที่ดูเหมือนจะไม่ค่อยเป็นที่รู้จักเท่าที่ควร ฉันค้นพบฟังก์ชั่นใหม่ที่ยอดเยี่ยมเกี่ยวกับทุก ๆ สองเดือนและฉันมั่นใจว่าเพื่อนนักพัฒนาของฉันจะทำให้เราประหลาดใจยิ่งขึ้นไปอีก.
หากคุณมีฟังก์ชั่นปิดบังที่ชื่นชอบหรือฟังก์ชั่นที่จะมีประโยชน์ แต่ไม่สามารถใช้ได้โปรดแจ้งให้เราทราบในความคิดเห็น!