คำถามติดแท็ก shortcode

BB-Code-like กลไกที่สตริงที่ล้อมรอบในวงเล็บเหลี่ยมสามารถทำหน้าที่เป็นชวเลขสำหรับสตริงที่ยาวและซับซ้อนมากขึ้น สตริงเหล่านี้ถูกประมวลผลโดยตัวจัดการการเรียกกลับโดยปกติจะอยู่ในโหลดหน้าซึ่งแทนที่สตริงที่อยู่ในวงเล็บด้วยเอาต์พุตจากตัวจัดการการเรียกกลับ

6
จะใส่รหัสของฉันได้ที่ไหน: plugin หรือ functions.php
มีรูปแบบที่เข้าใจง่ายหรือไม่ในการตัดสินใจว่าโค้ดประเภทใดเป็นของปลั๊กอินหรือธีมfunctions.phpหรือไม่ มีอยู่ หลาย กรณีและหลายการอภิปรายเกี่ยวกับหัวข้อที่ส่วนใหญ่เป็นเพราะมีความเข้าใจผิดบางอย่างเกี่ยวกับการทำงานภายในของ WordPress, ฉันขอคำตอบจากข้อเท็จจริงไม่ใช่ความคิดเห็น ควรอธิบายวิธีจัดการกับประเด็นเหล่านี้ (และอาจมากกว่า): ประเภทโพสต์ที่กำหนดเองและ taxonomies แบบฟอร์มการติดต่อ ย่อ วิดเจ็ตที่กำหนดเอง add_theme_support( 'automatic-feed-links' ); ฟังก์ชั่น SEO เช่นmetaองค์ประกอบที่กำหนดเอง สลับธีม มักจะมีข้อดีข้อเสียสำหรับทั้งสองฝ่าย คำถามที่ได้รับความนิยมมากที่สุดของเราคอลเลกชันที่ดีที่สุดของรหัสสำหรับไฟล์ functions.php ของคุณได้รับข้อมูลโค้ดจำนวนมากเป็นคำตอบที่อย่างน้อยเป็นที่ถกเถียงกัน เราต้องการเกณฑ์ที่ผู้เริ่มต้นสามารถเข้าใจได้อาจเป็นรายการตรวจสอบ - ด้วยเหตุผล ดูคำถามที่เกี่ยวข้องโดย Chip Bennett ในเว็บไซต์ meta ของเรา: คำถามที่ถามวิธีการแก้ปัญหาโดยเฉพาะ "ไม่มีปลั๊กอิน" ที่เกี่ยวข้อง: ฉันจะวางโค้ดขนาดเล็กที่ฉันพบที่นี่หรือที่อื่นบนเว็บได้ที่ไหน

8
จัดทำสคริปต์ / รูปแบบเมื่อมีรหัสย่อ
วิธีคิดในการลงทะเบียน / จัดคิวสคริปต์และ / หรือรูปแบบเพื่อใช้ในปลั๊กอินคืออะไร ฉันเพิ่งสร้างปลั๊กอินอย่างง่ายสำหรับปลั๊กอินเพื่อเพิ่มอวตารผู้ใช้ / gravatar ด้วยรหัสย่อ ฉันมีตัวเลือกสไตล์ที่แตกต่างกันสำหรับการแสดงอวตาร (สี่เหลี่ยมจัตุรัสรอบ ฯลฯ ) และตัดสินใจที่จะวาง CSS โดยตรงในตัวย่อ อย่างไรก็ตามฉันรู้แล้วว่านี่ไม่ใช่วิธีที่ดีเพราะมันจะทำ css ซ้ำทุกครั้งที่มีการใช้รหัสย่อบนหน้าเว็บ ฉันเคยเห็นวิธีการอื่น ๆ ในเว็บไซต์นี้และ wp codex ยังมีสองตัวอย่างของพวกเขาเองดังนั้นจึงเป็นการยากที่จะรู้ว่าวิธีใดที่สอดคล้องและรวดเร็วที่สุด นี่คือวิธีที่ฉันรู้อยู่ในขณะนี้: วิธีที่ 1: รวมโดยตรงในย่อ - นี่คือสิ่งที่ฉันกำลังทำอยู่ในปลั๊กอิน แต่ดูเหมือนจะไม่ดีเพราะมันทำซ้ำรหัส class My_Shortcode { function handle_shortcode( $atts, $content="" ) { /* simply enqueue or print the scripts/styles in the …

8
การโหลด JavaScript / CSS แบบมีเงื่อนไขสำหรับรหัสย่อ
ฉันปล่อยปลั๊กอินที่สร้างรหัสย่อและต้องใช้ไฟล์ JavaScript และไฟล์ CSS เพื่อโหลดในหน้าใด ๆ ที่มีรหัสย่อนั้น ฉันทำได้เพียงโหลดสคริปต์ / สไตล์ในทุกหน้า แต่นั่นไม่ใช่วิธีปฏิบัติที่ดีที่สุด ฉันต้องการโหลดไฟล์บนหน้าเว็บที่เรียกรหัสย่อเท่านั้น ฉันพบสองวิธีในการทำเช่นนี้ แต่ทั้งคู่มีปัญหา วิธีที่ 1ตั้งค่าสถานะเป็นจริงภายในฟังก์ชันตัวจัดการรหัสย่อและจากนั้นตรวจสอบค่าภายในการwp_footerเรียกกลับ หากเป็นจริงจะใช้wp_print_scripts()เพื่อโหลด JavaScript ปัญหานี้ก็คือว่ามันทำงานเฉพาะสำหรับ JavaScript และ CSS ไม่ได้เพราะ CSS ควรจะประกาศภายใน<head>ซึ่งคุณสามารถทำในช่วงต้นเบ็ดเหมือนหรือinitwp_head วิธีที่ 2เริ่มทำงานตั้งแต่เช้าและ "ดูล่วงหน้า" เพื่อดูว่ามีรหัสย่อในเนื้อหาของหน้าปัจจุบันหรือไม่ ผมชอบวิธีการนี้ดีกว่าครั้งแรก do_shortcode()แต่ปัญหาที่เกิดขึ้นกับมันมันจะไม่ตรวจสอบว่าสายแม่แบบ ดังนั้นฉันโน้มตัวไปใช้วิธีที่สองแล้วลองตรวจสอบว่ามีการกำหนดแม่แบบไว้หรือไม่และหากเป็นเช่นนั้นให้แยกวิเคราะห์สำหรับรหัสย่อ แม้ว่าก่อนหน้านั้นฉันต้องการตรวจสอบว่ามีใครรู้วิธีการที่ดีกว่านี้หรือไม่ อัปเดต:ฉันได้รวมโซลูชันไว้ในปลั๊กอินแล้ว ถ้าใครอยากรู้อยากเห็นที่จะเห็นมันโป่งพองออกมาในสภาพแวดล้อมที่อยู่คุณสามารถดาวน์โหลดได้หรือเรียกดูมัน อัปเดต 2:ในฐานะของ WordPress 3.3 ตอนนี้คุณสามารถโทรwp_enqueue_script()ภายในการโทรกลับด้วยรหัสย่อได้โดยตรงและไฟล์ JavaScript จะถูกเรียกภายในส่วนท้ายของเอกสาร ในทางเทคนิคนั้นเป็นไปได้สำหรับไฟล์ CSS เช่นกัน แต่ควรได้รับการพิจารณาว่าเป็นวิธีปฏิบัติที่ไม่ดีเนื่องจากการส่งออก CSS นอก<head>แท็กนั้นเป็นการละเมิดข้อกำหนดของ W3C สามารถเป็นกรณี …

2
จะเพิ่มปุ่มย่อในตัวแก้ไข TinyMCE ได้อย่างไร?
จะสร้างไอคอนปลั๊กอินใน wordpress post ได้อย่างไร? รหัสที่ฉันต้องการแทรกในรหัสปลั๊กอินและจะปรากฏในแถบโพสต์ [wp-admin / post.php] ชอบรูปนี้: ผลลัพธ์: ถ้าฉันคลิกไอคอนมันจะเขียน[plugin]ลงในเนื้อหาโพสต์โดยอัตโนมัติดังนี้:

1
สารสกัดอะไร (shortcode_atts (อาร์เรย์ (ทำ)
Codex พูดว่า shortcode_atts()รวมคุณลักษณะรหัสย่อผู้ใช้เข้ากับแอตทริบิวต์ที่รู้จักและเติมในค่าเริ่มต้นเมื่อต้องการ ผลลัพธ์จะมีทุกคีย์จากแอททริบิวที่รู้จักรวมกับค่าจากแอททริบิวรหัสย่อ มันไม่สมเหตุสมผลสำหรับฉัน (ฉันเป็นมือใหม่) นี่คือตัวอย่าง: function wps_trend($atts) { extract( shortcode_atts( array( 'w' => '500', 'h' => '330', 'q' => '', 'geo' => 'US', ), $atts)); $h = (int) $h; $w = (int) $w; $q = esc_attr($geo); ob_start(); คุณช่วยอธิบายได้มั้ย
28 shortcode 

9
หยุด WordPress เพิ่มแท็ก <br> เพื่อโพสต์เนื้อหาโดยอัตโนมัติ
มีวิธีหยุด WordPress จากการแทรก&lt;br&gt;แท็กโดยอัตโนมัติเมื่อเพิ่มผลตอบแทนในโปรแกรมแก้ไขข้อความ WordPress หรือไม่ ฉันต้องการให้มันทำตัวเหมือนตัวแก้ไขโค้ดที่ฉันสามารถจัดโครงสร้างโค้ดตามที่ฉันชอบและทำให้อ่านง่าย รหัสที่ฉันใช้ในเครื่องมือแก้ไขคือ: [one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third] ฉันต้องการจัดโครงสร้างแบบนี้เพื่อให้อ่านและแก้ไขได้ง่ายขึ้น: [one_third] [team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"] [custom_button url="#"]For more information[/custom_button] [/team_member] [/one_third] [one_third] [team_member image_url="team_member.jpg" name="Laser …

3
แบ่งเนื้อหาและคลังภาพ
มีวิธีแยกเนื้อหาโพสต์และรหัสย่อของคลังภาพหรือไม่ ฉันต้องการแสดงแกลเลอรีนอกเนื้อหาปกติของฉันไม่ว่าจะวางไว้ที่ใดหรืออย่างไร ฉันสามารถใช้สิ่งนี้เพื่อรับรหัสย่อของตัวเอง: if(has_shortcode(get_the_content(), 'gallery')){ $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); echo do_shortcode($matches[0]); } แต่วิธีนี้ใช้ไม่ได้หากรหัสย่อของแกลเลอรีไม่ใช่อินสแตนซ์แรก มีวิธีแยกเนื้อหาและแกลเลอรีของฉันออกอย่างสมบูรณ์หรือไม่ แก้ไข:ฉันมีวิธีแก้ปัญหาแบบกึ่ง แต่ดูเหมือนว่าเป็นวิธีที่ยืดยาวเพื่อไปเกี่ยวกับมัน มันคว้ารหัสย่อตัวแรกในโพสต์ (ซึ่งจะต้องแก้ไขเนื่องจากฉันต้องการเพียงรหัสย่อ "คลังภาพ") จากนั้นลบรหัสย่อทั้งหมดออกจากเนื้อหา (อีกครั้งไม่ใช่สิ่งที่ฉันต้องการทำจริงๆ &lt;?php if(has_shortcode(get_the_content(), 'gallery')) : ?&gt; &lt;?php $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); ?&gt; &lt;div id="content"&gt; &lt;?php echo strip_shortcodes(get_the_content()); ?&gt; &lt;/div&gt; &lt;div id="gallery"&gt; &lt;?php echo do_shortcode($matches[0]); ?&gt; &lt;/div&gt; …

1
Apply_filters ('the_content', $ content) vs do_shortcode ($ content)
ให้บอกว่าฉันมีตัวเลือกชุดรูปแบบหรือพื้นที่ข้อความ postmeta ที่กำหนดเอง ตอนนี้ฉันต้องการเรียกใช้รหัสย่อหลายข้อความทั่วไปรูปภาพ ฯลฯ อะไรจะเป็นแนวปฏิบัติที่ดีที่สุดและทำไม ตัวเลือกที่ 1: $content = //my text area data; echo apply_filters('the_content', $content); ตัวเลือก 2: $content = //my text area data; echo do_shortcode($content); โปรดอธิบายให้ฉันฟังว่าจะใช้วิธีใดดีที่สุดและทำไม แก้ไข ให้ฉันอธิบายสถานการณ์โดยละเอียด ฉันพัฒนาธีมสำหรับลูกค้าตามความต้องการของพวกเขา บางครั้งฉันต้องเพิ่มเมตาโพสต์ในโพสต์ / หน้า / ประเภทโพสต์ที่กำหนดเองเพื่อให้พวกเขาสามารถเพิ่มรหัสย่อ (ตัวเลื่อนรูปแบบการติดต่อ ฯลฯ ) หรือเพียงแค่ข้อความธรรมดา มันเป็นข้อความที่ยื่น เพื่อให้การทำงานรหัสที่ฉันใช้ตัวเลือกที่ 1 do_shortcodeตอนนี้ผมได้ยินจากคนที่ว่านี้เป็นวิธีที่ผิดและฉันควรใช้ แต่พวกเขาไม่ได้ให้คำอธิบายแก่ฉันว่าทำไมมันถึงผิด นั่นเป็นเหตุผลที่ฉันถาม กระบวนการทั้งหมดนี้สามารถทำได้ในตัวแก้ไขข้อความเริ่มต้นของ wp แต่ฉันต้องสร้างตัวเลือกเหล่านั้นสำหรับการใช้งานเฉพาะเทมเพลตนั่นคือสิ่งที่ลูกค้าของฉันต้องการ

3
วิธีแก้ปัญหาการแสดงผลรหัสย่อใน Admin Editor
ฉันได้ถามคำถามนี้เมื่อประมาณหนึ่งปีที่แล้วและฉันหวังว่าจะมีวิธีแก้ปัญหาแบบง่าย ๆ ซึ่งจะทำให้ฉันบรรลุวัตถุประสงค์ ดังนั้นที่นี่มันจะไป: ฉันมักจะใช้รหัสย่อภายใน Admin Editor แต่เมื่อฉันส่งให้ลูกค้าพวกเขามักจะไม่เข้าใจวิธีการทำงาน สิ่งที่ฉันกำลังมองหาคือโซลูชันที่จะแสดงผลลัพธ์การเชื่อมโยงของรหัสย่อภายในเอดิเตอร์ WYSIWYG แบบอัตโนมัติ จากมุมมองภาพฉันต้องการให้สิ่งนี้แสดงคล้ายกับเมื่อบรรทัด "more" ปรากฏขึ้นหรือเมื่อมีการแสดงรูปภาพภายในเครื่องมือแก้ไข จากนี้ฉันหมายความว่าผู้ใช้จะเห็นผลลัพธ์ แต่จะสามารถลบได้ แต่ไม่สามารถแก้ไขเนื้อหาของรหัสย่อที่แสดงผลได้

4
แสดงรหัสย่อโดยไม่ต้องเรียกใช้งาน
ฉันกำลังพยายามแสดงรหัสในหน้า WordPress ของฉัน แต่มันไม่ทำงาน ทุกสิ่งที่ฉันอ่านบอกว่าคุณควรจะสามารถใช้preแท็กที่มีรหัสแท็กและมันจะดี แต่เมื่อฉันพยายามที่จะแสดงรหัสสั้น ๆ มันแสดงผลรหัสสั้น ๆ แทนที่จะแสดงรหัส Codex บอกว่าการใช้preและรหัสจะใช้งานได้ แต่ไม่ใช่สำหรับฉัน มีใครมีปัญหานี้หรือไม่? ฉันทำอะไรบางอย่างfunctions.phpที่ทำให้งานนี้หายไปหรือไม่
18 shortcode 

2
วิธีกำหนดเอาท์พุตของรหัสย่อคลังภาพ WP จากปลั๊กอิน?
เรากำลังสร้างปลั๊กอินที่แสดงโพสต์และเราต้องการแสดงแกลเลอรี่ภาพเมื่อมันถูกใช้ในโพสต์ อย่างไรก็ตามเราจำเป็นต้อง จำกัด จำนวนรูปภาพที่แสดงหรือไม่ เป็นไปได้ไหม

5
ฉันจะหลีกเลี่ยง ']' ด้วยรหัสย่อได้อย่างไร
ฉันจะหลบหนีวงเล็บขวาในรหัสสั้น ๆ ได้อย่างไร ฉันกำลังทำงานกับปลั๊กอิน Google แผนที่ที่มีการเข้ารหัสจุด บางครั้งรูปหลายเหลี่ยมมี] อยู่ในนั้นซึ่งทำให้ WP คิดว่ามันเป็นจุดสิ้นสุดของรหัสย่อ ตัวอย่างเช่น: [my_shortcode latitude='36.93' longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ] ฉันลองแล้ว&amp;#93;ซึ่งไม่ได้ทำให้เกิดปัญหาสำหรับ WP แต่มันทำให้เกิดปัญหากับรหัสแผนที่ Google ของฉัน ฉันสามารถใช้ Regex เพื่อแทนที่] แต่อาจมีวิธีที่ง่ายกว่า รหัสย่อมีอักขระเลี่ยงหรือไม่
17 shortcode 

3
ส่งค่าบูลีนในรหัสย่อ
ในรหัสย่อของ WordPress ฉันจะส่งแอตทริบิวต์บูลีนได้อย่างไร ทั้งสองอย่าง[shortcode boolean_attribute="true"]หรือ[shortcode boolean_attribute=true]กำลังให้ค่าสตริง แก้ไข จะไม่มีปัญหาสำหรับผู้ใช้ที่รู้ว่าพวกเขากำลังทำอะไรหากฉันใช้เคล็ดลับซึ่งถูกคอมเม้นต์โดย @brasofilo แต่ผู้ใช้บางคนจะหลงทางถ้าพวกเขาให้falseค่าคุณลักษณะและรับtrueค่า มีวิธีอื่นอีกไหม?

4
วิธีแก้ไขรหัสแกลเลอรี WordPress ด้วยตนเองโดยใช้ PHP ใน functions.php
มีการพูดคุยกันหลายครั้งว่า Wordpress มีโค้ดที่ไม่ดีสำหรับฟังก์ชั่นแกลเลอรีในตัว นี่คือรหัสหลักที่รับผิดชอบการแสดงผลแกลเลอรี (ใน /wp-includes/media.php): function gallery_shortcode($attr) { global $post; static $instance = 0; $instance++; // Allow plugins/themes to override the default gallery template. $output = apply_filters('post_gallery', '', $attr); if ( $output != '' ) return $output; // We're trusting author input, so let's at least make sure it …

2
รหัสย่อจะแสดงที่ด้านบนของหน้าเสมอ
ฉันใช้รหัสย่อเพื่อดึงลูปต่าง ๆ ผ่านลูป - ชื่อ.php ด้วยเหตุผลบางอย่างมันอยู่ด้านบนของหน้าเสมอ ฉัน googled มันและใช้ echo แทนการส่งคืนทำให้เกิดปัญหานั้น แต่ด้วยรหัสของฉันฉันไม่ได้ใช้ echo นี่คือรหัสย่อ: // setup the shortcode for use function friendly_loop_shortcode( $atts, $content = null ) { extract( shortcode_atts( array( 'category' =&gt; '', 'module' =&gt; '' ), $atts ) ); include(locate_template('loop-'.$module.'.php')); } มีความคิดว่าทำไมสิ่งนี้เกิดขึ้น?
15 shortcode 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.