โฮมเพจ » WordPress » 15 ฟังก์ชั่น WordPress ที่มีประโยชน์นักพัฒนาทุกคนควรรู้

    15 ฟังก์ชั่น WordPress ที่มีประโยชน์นักพัฒนาทุกคนควรรู้

    WordPress เต็มไปด้วยฟังก์ชั่นที่ยอดเยี่ยมสำหรับนักพัฒนาที่จะใช้ เราสามารถดึงรายการโพสต์ออกมาจากอากาศจัดการกับเกือบทุกอย่างเกี่ยวกับพวกเขาคว้าผู้ใช้ที่เราต้องการและแสดงการเชื่อมต่อสื่อสังคมของพวกเขาในระยะเวลาอันสั้น.

    อย่างไรก็ตามมีฟังก์ชั่นค่อนข้างน้อยซึ่งดูเหมือนว่าจะมองข้ามไปโดยไม่ทราบสาเหตุ ฉันได้รับการเข้ารหัสกับ WordPress มาประมาณ 8 ปีแล้วและในบางครั้งฉันก็ยังพบสิ่งใหม่! ลองดูที่ของฉันบ้าง ฟังก์ชั่นที่ถูกมองข้ามที่ชื่นชอบ และเรียนรู้วิธีใช้งานระหว่างทาง.

    antispambot ()

    ฉันมักจะยกคิ้วสักสองสามอันด้วยมันดูเหมือนว่าจะเป็นหนึ่งในฟังก์ชั่นที่ซ่อนอยู่ใน codebase. antispambot () แทนที่อักขระด้วยเอนทิตี HTML ซึ่งเป็นวิธีหนึ่ง ที่อยู่อีเมลหลอกลวง จากเครื่องขูดที่ชั่วร้าย.

     $ 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 ()

    ตัวอย่างสุดท้ายแสดงฟังก์ชั่นอื่นที่เรียบร้อย: wp_redirect (). สิ่งนี้ควรใช้แทน PHP ดั้งเดิม ส่วนหัว () ฟังก์ชัน ฟังก์ชั่นการเปลี่ยนเส้นทางของ 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)) 

    ข้อสรุป

    เหล่านี้เป็นเพียงฟังก์ชั่นบางอย่างที่ดูเหมือนจะไม่ค่อยเป็นที่รู้จักเท่าที่ควร ฉันค้นพบฟังก์ชั่นใหม่ที่ยอดเยี่ยมเกี่ยวกับทุก ๆ สองเดือนและฉันมั่นใจว่าเพื่อนนักพัฒนาของฉันจะทำให้เราประหลาดใจยิ่งขึ้นไปอีก.

    หากคุณมีฟังก์ชั่นปิดบังที่ชื่นชอบหรือฟังก์ชั่นที่จะมีประโยชน์ แต่ไม่สามารถใช้ได้โปรดแจ้งให้เราทราบในความคิดเห็น!