คำถามติดแท็ก theme-customizer

Customizer เป็นกรอบสำหรับการจัดเตรียมการเปลี่ยนแปลงใน WordPress การตั้งค่าอาจจำลองสิ่งใด ๆ ในไซต์ที่กำหนด (ตัวเลือกตัวดัดแปลงธีมเมนูการนำทางวิดเจ็ตโพสต์ ฯลฯ ) และการเปลี่ยนแปลงจะรวมอยู่ในชุดการเปลี่ยนแปลงซึ่งจะดูตัวอย่างบันทึกเป็นแบบร่างและแม้กระทั่งตามกำหนดเวลา ธีมและปลั๊กอินเหมือนกันอาจขยาย Customizer ได้ ควรตั้งคำถามที่เกี่ยวข้องกับ Customize API ใน WordPress ทั้งใน PHP และ JS

5
วิธีการขยาย WP_Customize_Control
ฉันกำลังมองหาวิธีที่จะเพิ่มการควบคุมชนิดใหม่ลงในแผงแสดงตัวอย่างแบบกำหนดเองแบบสด ฉันได้เห็นวิธีเพิ่มหัวข้อใหม่ลงในแผงโดยใช้ add_action( 'customize_register'... การควบคุมที่ฉันต้องการนำไปใช้เป็นเครื่องมือเลือกสีชนิดอื่น ในโพสต์ก่อนหน้านี้เราจะเห็นวิธีการขยายคลาสหลักเพื่อเพิ่มวิดเจ็ต แต่สิ่งที่ฉันขาดนี่คือตะขอที่จะทำให้ฉันสามารถนำวัตถุของฉันเข้าสู่ขอบเขต - WP_Customize_Palette_Control ที่ คุณสามารถเห็นจุดเริ่มต้นของรหัสที่นี่ รหัสนี้อยู่ในfunctions.phpไฟล์ของธีมของฉัน ขอบคุณสำหรับความช่วยเหลือใด ๆ ปล้น เพิ่งปรับปรุงรหัส ตอนนี้ฉันต้องrequire_onceมาเรียน ดังนั้นตอนนี้ฉันไม่มีข้อผิดพลาด PHP แต่ HTML ควบคุมใหม่ของฉันไม่ปรากฏขึ้น <?php require_once( ABSPATH . WPINC . '/class-wp-customize-setting.php' ); require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' ); require_once( ABSPATH . WPINC . '/class-wp-customize-control.php' ); class WP_Customize_Palette_Control extends WP_Customize_Image_Control { public …

2
API การตั้งค่าเทียบกับ Theme Customizer
คำถามนี้ถูกย้ายจาก WordPress Development Meta Stack Exchange เพราะสามารถตอบได้ใน WordPress Development Stack Exchange อพยพ 6 ปีที่แล้ว เมื่อใดจึงจะเหมาะสมที่จะใช้การตั้งค่า API และเมื่อใดควรใช้ตัวกำหนดธีมเองดีกว่า ฉันมี Googled ทุกเช้าฉันไม่สามารถหาคำแนะนำที่ดีและได้รับการพิจารณาในเรื่องนี้ได้ ในขณะที่ยังเร็วที่จะบอกว่าฉันรู้สึกว่าเครื่องมือปรับแต่งชุดรูปแบบเป็นขั้นตอนแรกที่มีการชี้นำต่อการนำคุณลักษณะการแก้ไขที่คล้ายกับ Squarespaceเพิ่มเติม มีใครรู้บ้างเกี่ยวกับแผนการที่จะทำให้พระอาทิตย์ตก API การตั้งค่าให้แก่ Customizer Theme หรือไม่ เราทุกคนควรจะค่อยๆเคลื่อนไปหามันหรือเราจะดีกว่าที่จะยึดการตั้งค่า API หรือไม่? พวกเขาสามารถอยู่เคียงข้างกันหรือไม่และถ้าเป็นเช่นนั้นการแบ่งความรับผิดชอบจะอยู่ที่ไหน

5
get_option () vs get_theme_mod (): ทำไมอันใดอันหนึ่งถึงช้ากว่า
ฉันใช้get_theme_mod()ไประยะหนึ่งในโครงการต่าง ๆ ของฉัน ฉันตัดสินใจที่จะใช้ประโยชน์จาก Theme Customization API ใน WordPress v3.4 เมื่อมันพร้อมใช้งานเพราะฉันรู้สึกว่ามันเป็นเครื่องมือที่จำเป็นสำหรับลูกค้าของฉันที่จะใช้ หลังจากนั้นครู่หนึ่งฉันเริ่มสังเกตเห็นว่าไซต์ของฉันรู้สึกซบเซากว่าปกติเล็กน้อยและ Customizer โดยเฉพาะใช้เวลาโหลดค่อนข้างนาน ผ่านความอุดมสมบูรณ์ของการทดลองและข้อผิดพลาดในระหว่างการสอบสวนของฉันฉันตัดสินใจที่จะลองสลับออกtypeเมื่อลงทะเบียนตั้งค่าของฉัน (คือ$wp_customize->add_setting()) จากการtheme_modoption เมื่อฉันทำสิ่งนี้และสลับการเรียกทั้งหมดของฉันget_theme_mod()ไปget_option()ฉันสังเกตเห็นความเร็วที่เพิ่มขึ้นอย่างมากโดยใช้การตั้งค่าหลังซึ่งตรงข้ามกับอดีตในส่วนหน้าและโดยเฉพาะอย่างยิ่งใน Customizer ที่ด้านหลัง ฉันได้ดูผ่านคอร์ของ WordPress ในความพยายามที่จะลองและหาคำตอบว่าทำไมถึงเป็นเช่นนี้ แต่ดูเหมือนจะไม่สามารถแยกแยะว่า hangup ใดที่อยู่ในสถานการณ์นี้ ข้อมูลเชิงลึกที่ชุมชนอาจมีเกี่ยวกับget_option()การดำเนินการอย่างมีนัยสำคัญเร็วกว่าที่get_theme_mod()จะได้รับการชื่นชมอย่างมาก

2
ใหม่ WP_Customize API - มันทำงานอย่างไรภายใต้ประทุน?
ฉันสังเกตเห็นว่าหากคุณทำการเปลี่ยนแปลงคุณสมบัติ "กำหนดเอง" ใหม่เมื่อคุณไปยังหน้าอื่นในเอกสารแสดงตัวอย่าง iframe การเปลี่ยนแปลงของคุณจะยังคงมีผลอยู่แม้ว่าจะยังไม่ได้บันทึกก็ตาม ดูเหมือนว่า WP จะเก็บการเปลี่ยนแปลงชั่วคราวไว้ที่ใดที่หนึ่งและนำไปใช้กับไซต์หากไซต์นั้นถูกดูในโหมด "ปรับแต่ง" แต่ไซต์จะรู้ได้อย่างไรว่าอยู่ในโหมดกำหนดเอง เพราะฉันไม่เห็นข้อโต้แย้งแบบสอบถามใด ๆ ต่อท้ายลิงค์หรืออะไรทำนองนั้น


1
ฉันจะใช้การรีเฟรชแบบเลือกด้วยการตั้งค่า Customizer ได้อย่างไร
ฉันมีส่วนในเทมเพลตหน้าในชุดรูปแบบที่ฉันทำซึ่งแสดงเนื้อหาตามหน้าที่ผู้ใช้เลือกในเครื่องมือปรับแต่งโดยใช้ตัวควบคุมหน้าแบบเลื่อนลง ตอนนี้เป็นเพียงการใช้การรีเฟรชเริ่มต้นมาตรฐาน แต่เนื่องจากมันเป็นการโหลด iframe ทั้งหมดอีกครั้งฉันจึงสงสัยว่ามันเป็นไปได้ที่จะใช้คุณสมบัติรีเฟรชแบบเลือกใหม่ แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร ใครรู้ว่าสิ่งนี้เป็นไปได้และถ้าเป็นเช่นนั้นจะทำอย่างไร? นี่คือรหัสในเทมเพลตหน้าของฉันที่แสดงเนื้อหา: <?php if ((get_theme_mod( 'intro_page' )) != '') { $intro_id = get_theme_mod( 'intro_page' ); $intro_header = get_the_title( $intro_id ); $intro_excerpt = get_the_excerpt( $intro_id ); $intro_link = get_the_permalink( $intro_id ); $intro_linktext = get_post_meta( $intro_id, 'emm_cta_text', true ); echo '<h1>' . esc_html($intro_header) . '</h1>' . …

2
Customizer JS API
ตกลงดังนั้นฉันพยายามสอนตัวเองเพื่อสร้างส่วนพาเนลใหม่และควบคุมแบบไดนามิกโดยใช้ JS API ของ Customizer มันน่าผิดหวังไม่กี่วันและฉันไม่สามารถหาวิธีที่แน่นอนเพื่อให้บรรลุสิ่งนี้ผ่าน JS API จนถึงตอนนี้สิ่งที่ฉันทำเพื่อให้มันเกิดขึ้น แต่ไม่ประสบความสำเร็จ: // for Settings api.create( params.id, params.id, params.default, params.args ); // for controls var controlConstructor = api.controlConstructor[params.type]; var control = new controlConstructor(params.id, { params: params, previewer: api.previewer }); api.control.add( params.id, control ); //for Sections var section = new api.Section(params.id, { params: …

2
ฉันจะใช้ตัวเลือก WordPress Iris กับปลั๊กอินของฉันในส่วนหน้าได้อย่างไร
คำถามนี้ที่นี่ถามคำถามเดียวกันกับฉัน แต่ไม่มีคำตอบที่เพียงพอหรือคำตอบที่ถูกต้องที่เลือกดังนั้นฉันถามอีกครั้งหวังว่าฉันถามในลักษณะที่สอดคล้องกันมากขึ้นฉันอาจได้รับการตอบสนอง ฉันกำลังพยายามใช้วงล้อเลือกสีตามที่เห็นในบานหน้าต่าง Wordpress Theme Customization API เพื่อเลือกสี การโหลดสคริปต์และลักษณะใช้งานได้ดีเมื่อใช้ตะขอ "admin_enqueue_scripts" ทำงาน แต่พยายามโหลดสคริปต์เหล่านี้ในส่วนหน้าโดยใช้ตะขอ "wp_enqueue_scripts" ไม่ทำงาน ลักษณะถูกจัดคิว แต่ไม่ใช่สคริปต์ ฉันต้องการหลีกเลี่ยงการคัดลอกไฟล์ลงในปลั๊กอินทำซ้ำสิ่งที่รวมอยู่ใน Wordpress แล้ว ต้องมีวิธีในการทำให้ตัวเลือกสี Iris ทำงานบนส่วนหน้าที่ฉันไม่เห็น และสำหรับผู้ที่สงสัยว่าทำไมฉันถึงต้องการทำเช่นนี้ฉันกำลังพัฒนาปลั๊กอินที่เพิ่มแผงควบคุมแบบลอยออกไปที่ด้านข้างของหน้าจอซึ่งช่วยให้คุณทำการเปลี่ยนแปลงสไตล์ชั่วคราวแบบเรียลไทม์โดยไม่ต้องลงชื่อเข้าใช้ผ่าน wp-admin แผงหน้าปัด.

2
Theme Customizer - ลำดับการตั้งค่า
หากฉันเพิ่มการตั้งค่ามากกว่า 5 รายการในส่วนเดียวลำดับของการตั้งค่าจะแปลก ตัวอย่างเช่น: // Link color $wp_customize->add_setting( 'tonal_'.$themeslug.'_settings[link_color1]', array( 'default' => $themeOptions['link_color1'], 'type' => 'option', 'sanitize_callback' => 'sanitize_hex_color', 'capability' => 'edit_theme_options', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'tonal_'.$themeslug.'_settings[link_color1]', array( 'label' => __( 'Link color1', 'tonal' ), 'section' => 'colors', 'settings' => 'tonal_'.$themeslug.'_settings[link_color1]', 'choices' => '#ffffff' ) …

1
ส่วนรูปภาพที่กำหนดเองใน Customizer
ดังนั้นฉันมีส่วนที่กำหนดเองนี้ในเครื่องมือปรับแต่งที่ควบคุมผลิตภัณฑ์คุณสมบัติในหน้าแรก มีการลงทะเบียนทั้งหมดและอื่น ๆ แต่ปัญหาที่ฉันติดอยู่คือเมื่อลูกค้าอัปโหลดหนึ่งในภาพคุณลักษณะที่ฉันไม่ทราบวิธีที่จะทำให้การปรับปรุง รหัสfunction.phpฉันกำลังทำงานกับ: // Customiser function themeName_customize_register( $wp_customize ) { $wp_customize->add_setting('feature_product_one', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_two', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_three', array( 'default-image' => …

1
เป็นไปได้หรือไม่ที่จะขยายวิธีการกำหนด JS เอง
ฉันสงสัยว่าถ้ามันเป็นไปได้ที่จะขยายวิธีการของการที่ไม่ระบุชื่อวัตถุที่อยู่ในapi wp-admin/js/customize-control.jsฉันต้องการเขียนทับหนึ่งในวิธีการเหล่านี้ด้วยตรรกะที่กำหนดเองของฉัน แต่ฉันสงสัยว่ามันเป็นไปไม่ได้เนื่องจากมันถูกห่อหุ้มด้วยการแสดงออกของฟังก์ชั่นที่เรียกใช้ทันที: /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); window.wp.customizeเท่าที่ผมสามารถมองเห็นฉันไม่สามารถที่จะขยายต้นแบบจากวัตถุหน้าต่างเพราะมันดำเนินการไม่ระบุชื่อและไม่สามารถใช้ได้จาก ความคิดใด ๆ ถ้าสิ่งนั้นเป็นไปได้? แม้จะมีการพูดถึงการเอาชนะสิ่งนี้ในเอกสาร. toggle () วิธีการ / คำอธิบาย: https://github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110แต่ฉัน ไม่แน่ใจว่าพวกเขาหมายถึงเพียงแค่การฟอร์กไฟล์ JS ทั้งหมดทำการถอนคิวรุ่น WP และจัดคิวของคุณเองหรือถ้าพวกมันมีความหมายหรืออะไรที่แตกต่างออกไป โปรดทราบว่าดูเหมือนว่าควรจะเป็นไปได้ด้วยwp.customize.{method}.extend({ foo: // replace method foo here })แต่จะใช้กับคลาส / วัตถุฐานสาธารณะเท่านั้นไม่ใช่ในwp-admin/js/customize-control.js
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.