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

ธีมสร้างส่วนต่อประสานสาธารณะ (front-end) สำหรับไซต์ WordPress

3
วิธีการแทนที่ฟังก์ชั่นที่เสียบได้ในธีม?
เอกสารทั้งหมดที่ฉันได้พบกล่าวถึงฟังก์ชั่นการเอาชนะได้ผ่านปลั๊กอินของคุณ ถ้าคุณกำลังพัฒนาชุดรูปแบบแทนล่ะ functions.php ของฉันต้องการไฟล์อื่นที่ใช้แทนข้อมูลที่ฟังก์ชั่นที่กำหนดไว้ในget_user_by()pluggable.php หากฉันไม่รับif( function_exists() )สายฉันจะได้รับข้อผิดพลาด "ไม่สามารถประกาศใหม่ ... " ถ้าฉันรวมการif( function exists() )โทรฉันก็จะไม่มีข้อผิดพลาด แต่แน่นอนว่าฟังก์ชั่นของฉันนั้นถูกละเว้นเพราะมีรุ่นที่เสียบได้ ขึ้นอยู่กับการโพสต์ที่ยอดเยี่ยมของโดมินิคตามลำดับการเริ่มต้น WordPressเป็นที่ชัดเจนว่าpluggable.phpโหลดก่อนธีมของคุณfunctions.phpและอื่น ๆ เพื่ออธิบายข้อผิดพลาด ดังนั้นคำถามคือ - คุณจะใช้ประโยชน์จากสถาปัตยกรรม pluggable ที่ดีได้อย่างไรภายในธีมโดยไม่ต้องหันไปเขียนปลั๊กอินซึ่งจะต้องรวมหรือติดตั้งกับธีม? หมายเหตุเพิ่มเติม : ดังนั้นจึงปรากฏว่าอาร์กิวเมนต์คือชุดรูปแบบไม่ควรพยายามทำสิ่งที่ปลั๊กอินทำ แต่อาร์กิวเมนต์นั้นอายุเกินสี่ปี (ตามหมายเลข trac 4 หลัก) ฉันชอบที่จะได้ยินจากผู้ตีหนักบางคนว่าปรัชญานี้ยังคงใช้งานได้หรือไม่เนื่องจากโครงสร้างที่ซับซ้อนของภูมิทัศน์การพัฒนารูปแบบของวันนี้ ฉันอยากจะเชื่อว่าเรามีวิวัฒนาการมาตั้งแต่นั้นมา บริบท : ฉันกำลังพัฒนาโซลูชัน CMS แบบครั้งเดียวสำหรับลูกค้าที่มีข้อมูลเมตาที่กำหนดเองจำนวนมากการกำหนดค่าส่วนหลังของผู้ดูแลระบบกระบวนการเข้าสู่ระบบ / การรับรองความถูกต้องที่กำหนดเอง และแน่นอนว่ามีองค์ประกอบการออกแบบ - ซึ่งเป็นที่ที่ชุดรูปแบบเข้ามาความจริงก็คือพวกนี้ไม่ใช่องค์ประกอบที่นำมาใช้ซ้ำได้ - พวกเขาจะไม่นำไปใช้กับลูกค้ารายอื่นพวกเขาจะไม่ถูกวางภายใต้ GPL และเปิดแหล่งที่มา แน่นอนว่าจะไม่แจกจ่าย / …

2
เมื่อใดควรใช้ add_action ('init') กับ add_action ('wp_enqueue_scripts')
ในฟังก์ชั่นของ theme.php ฉันกำลังเรียก add_action เพื่อให้สามารถวัดการควบคุมได้ว่าโหลด jquery ไว้ที่ไหน (ในส่วนท้ายพร้อมกับสคริปต์อื่น ๆ ของธีม) ปัญหาที่ฉันมีอยู่ก็คือเมื่อฉันใช้ add_action ('wp_enqueue_scripts') มันจะปรากฏขึ้นก็ต่อเมื่อไม่มีการโหลดปลั๊กอิน อย่างไรก็ตามวิธีการ add_action ('init') สามารถใช้งานได้ในทุกกรณี ฉันจำไม่ได้ว่าทำไม แต่ฉันเชื่อว่าเป็นที่ต้องการ add_action ('wp_enqueue_scripts') ในกรณีนี้ หากเป็นจริงฉันจะทำให้มันทำงานได้ในทุกกรณีได้อย่างไร ในฟังก์ชั่น //if(!is_admin()){add_action('init', 'my_theme_init');} //THIS WORKS ALL THE TIME //add_action('wp_enqueue_scripts', 'my_theme_init'); //THIS ONLY WORKS WHEN NO PLUGINS PRESENT if(!is_admin()) { require_once(TEMPLATEPATH . '/functions_public.php'); } ใน functions_public.php function …

1
เราควรใช้ get_template_part () ในฟังก์ชั่นไฟล์แทน include_once หรือไม่?
ฉันใช้ปลั๊กอินตรวจสอบชุดรูปแบบเพื่อตรวจสอบข้อผิดพลาดและคำแนะนำของฉันฉันใช้ get_template_part () ในไฟล์ชุดรูปแบบเช่น header.php และ index.php แต่ใน functions.php ฉันใช้ include_once () theme- ตรวจสอบไม่ได้ชี้ไปที่สิ่งเหล่านี้ก็ชี้ไปที่ include_once ที่ใช้ในไฟล์ widgets.php ซึ่งรวมอยู่ใน function.php คำถามของฉันคือเราควรใช้ get_template_part () แทนที่จะใช้ include_once () และรวม () หรือเพียงแค่ใช้เพื่อรับมาร์กอัปที่ใช้บ่อยเท่านั้น? ฉันรู้ว่ามันแนะนำให้ใช้เพียง get_template_part () แต่ฉันชอบที่จะปฏิบัติตามคำแนะนำและแนวทางปฏิบัติที่ดีที่สุด ขอบคุณล่วงหน้า.

1
ความแตกต่างระหว่าง wp_register_sidebar_widget และ register_widget คืออะไร
ความแตกต่างระหว่างพวกเขาและเมื่อเราควรใช้แต่ละคนคืออะไร? ฉันใช้wp_register_sidebar_widgetตอนนี้และมันใช้ได้ดี แต่ฉันเห็นบทเรียนออนไลน์มากมายเกี่ยวกับวิธีสร้างวิดเจ็ตโดยใช้ register_widget และคลาสวิดเจ็ตของฉันส่วนใหญ่ไม่ต้องการตัวเลือกดังนั้นฉันควรติดwp_register_sidebar_widgetหรือควรใช้register_widgetแม้ว่าฉันไม่มีแบบฟอร์ม? ขอบคุณล่วงหน้า.

3
วิธีการตั้งค่าโครงสร้างลิงก์ผ่าน function.php
ฉันกำลังตั้งค่าเครือข่าย Wordpress และต้องการให้ไซต์ใหม่ทั้งหมดมีโครงสร้าง Permalink แบบเดียวกัน (เช่น "/% ปี% /% เดือนเดือน / เดือน% ชื่อ% /%") ฉันสงสัยว่านี่เป็นไปได้ที่จะทำผ่าน hooks หรือ hacks ใน functions.php โดยไม่ต้องพึ่งพาผู้ใช้ในการเลือกโครงสร้างนั้น

7
ฉันจะแสดงเมนูในบางหน้าได้อย่างไร
แทนที่จะใช้วิดเจ็ตแถบด้านข้างเพื่อบอกว่าควรจะมองเห็นหน้าใดฉันต้องการเลือกที่การตั้งค่าเมนูเพื่อให้ปรากฏในหน้าเฉพาะ วิธี Wordpress เริ่มต้น: ดังนั้นโครงการจึงเป็นหน้าเว็บและมีหน้าย่อยบางส่วน แต่ถ้าฉันมีหน้าและหน้าย่อยมากกว่า 10 หน้าในสถานการณ์เดียวกัน ฉันต้องการเพิ่มการตั้งค่าพิเศษ (รายการหน้าระดับบนสุด): แต่ฉันไม่พบเอกสารการกระทำตัวกรองและอื่น ๆ เมื่อโหลดการตั้งค่าเหล่านี้

4
วิธีทำให้ปลั๊กอินจำเป็นต้องใช้ในธีม wp โดยไม่ต้องใช้คำสั่งแบบมีเงื่อนไข php เมื่อเรียกใช้ฟังก์ชันแต่ละตัวจากปลั๊กอินนั้น
หนึ่งในธีม Wordpress ของฉันต้องการปลั๊กอินของบุคคลที่สามบางตัวเพื่อให้ทำงานได้อย่างถูกต้อง เวลาส่วนใหญ่ที่ฉันเคยเรียกใช้ฟังก์ชั่นจากปลั๊กอินของบุคคลที่สามโดยใช้คำสั่งแบบมีเงื่อนไขเช่น if(function_exist('plugin_function')) { plugin_function() // do something } สมมติว่าฉันต้องใช้ปลั๊กอินหนึ่งตัวผ่านหลายไฟล์ในธีมของฉัน ... ฉันต้องการหลีกเลี่ยงการใช้เงื่อนไข IF จำนวนมาก ... มีวิธีที่เหมาะสมในการติดตั้งปลั๊กอินเฉพาะใน WP หรือติดตั้งให้ดียิ่งขึ้น หากพวกเขาหายไปก่อนเปิดใช้งานชุดรูปแบบ? ขอบคุณ

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' => …

3
วิธีแทรกโลโก้ในส่วนหัว?
ฉันค่อนข้างใหม่ในโลก WordPress (ฉันมาจาก Joomla) ฉันพบปัญหาในการแทรกโลโก้ในเว็บไซต์ทดสอบ WordPress นี้: http://onofri.org/example/ ฉันต้องการใส่โลโก้ไว้ในส่วนหัวของเว็บไซต์แทนข้อความ "EXAMPLE" มองเข้าไปในแผงการกำหนดค่า WordPress ฉันไม่พบที่ฉันสามารถอัปโหลดโลโก้และวางมันโดยอัตโนมัติแทนข้อความ "ตัวอย่าง" ในส่วนหัว (ฉันไม่รู้ว่านี่เป็นฟังก์ชั่น WordPress มาตรฐานเช่นเดียวกับใน Joomla หรือถ้ามันเป็น คุณสมบัติที่สามารถให้บริการได้ในบางธีมหรือถ้าฉันต้องใส่ลงในโค้ดโดยตรง) อย่างไรก็ตามฉันไม่พบมันแม้แต่ในการตั้งค่าธีมของฉัน ฉันต้องทำอย่างไรเพื่อใส่โลโก้ ฉันต้องแทรกมันลงในรหัส HTML โดยตรงหรือไม่

3
หน้าร้านค้า WooCommerce เพื่อใช้เทมเพลตที่กำหนดเองของฉัน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ WordPress Development Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ก่อนถามคำถามฉันต้องการบอกคุณว่าฉันได้ถามคำถามไปแล้วใน/programming/15025213/wordpress-woocommerce-template-file-overiding ฉันใช้ปลั๊กอินWooCommerceเพื่อพัฒนาเว็บไซต์ ทุกอย่างเรียบร้อยด้วย WooCommerce ตามความต้องการของฉันฉันได้กำหนดค่าหน้าแรกของฉันเป็นหน้าฐานร้านค้าจากแผงควบคุมของ WooCommerce เพื่อให้หน้าแรกของฉันเป็นหน้าร้านค้า ตอนนี้ความต้องการของฉันคือการวางภาพบางส่วนซึ่งควรจะอัปโหลดจากด้านผู้ดูแลระบบและเพื่อแสดงข้อความมากกว่าภาพ สำหรับคุณลักษณะที่ฉันค้นหามากกว่า Google และบางคนบอกว่าผมใช้WordPress ฟิลด์ที่กำหนดเองขั้นสูง ฉันเพิ่งติดตั้ง ตอนนี้ฉันเห็นว่า WooCommerce ไม่ได้ใช้ธีมที่กำหนดเองของฉัน มันใช้ธีมที่กำหนดเองของตัวเอง เนื่องจากฉันต้องการแสดงรูปภาพและข้อความโดยใช้ปลั๊กอิน Advanced Custom Fieldsฉันต้องการแม่แบบกำหนดเองของฉันเองเพื่อใช้แบบสอบถามสำหรับรูปภาพและข้อความ จากนั้นฉันก็ค้นหาโซลูชันของ Google อีกครั้งและฉันก็ได้รับคำแนะนำให้ทำสำเนาของธีมpage.phpเข้าไปwoocommerce.phpแล้วเปลี่ยนรหัส: <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'page' ); ?> <?php …

3
คลาส CSS สำหรับธีม
มีใครทราบคลาส CSS ที่แนะนำล่วงหน้า (แนะนำโดย WP) ที่ฉันควรใช้ในธีมของฉันหรือไม่ ฉันเคยเห็นรายชื่อ CSS คลาสทั้งหมดในอินเตอร์เน็ตที่ใช้ในธีม WP แต่ไม่พบ อัปเดต:ฉันได้พบไซต์ที่ฉันเห็นรายการนี้: http://www.wpbeginner.com/wp-themes/default-wordpress-generated-css-cheat-sheet-for-beginners/

1
รีเซ็ตตำแหน่งของ metaboxes ในผู้ดูแลระบบ
ฉันกำลังเขียนหัวข้อและในนั้นฉันมีฟังก์ชั่นที่สร้างสอง metaboxes พารามิเตอร์ที่สี่ของฟังก์ชัน "add_meta_box ()" ที่ฉันใช้สามารถตั้งค่าเป็น (สูง, แกน, ค่าเริ่มต้นหรือต่ำ) ฉันต้องการให้กล่องปรากฏในคำสั่งเฉพาะ (เช่นคำสั่งภายในหนึ่งใน 4 กลุ่มเหล่านี้ - เช่นเมื่อทั้งเมตาโบซ์ถูกตั้งค่าเป็น 'ลำดับความสำคัญ' ฉันต้องการที่จะสามารถระบุได้ว่าจะแสดงผลใดเป็นอันดับแรกและลำดับที่สอง) นั่นคือเรื่องย้อนหลัง แต่คำถามของฉันมาจากข้อเท็จจริงที่ว่าในขณะที่ทดลองกับสิ่งนี้ฉันต้องย้ายกล่องหนึ่งไปยังอีกคอลัมน์หนึ่ง และการกระทำนั้นดูเหมือนจะแทนที่ลำดับความสำคัญในการเขียนโปรแกรมทั้งหมด (ฉันรู้สิ่งนี้เพราะเมื่อฉันเปลี่ยนชื่อ metaboxes ฉันมีโปรแกรมควบคุมอีกครั้ง) ฉันได้ลองทุกอย่างเพื่อให้มันกลับเป็นค่าเริ่มต้น แต่ก็ไม่มีประโยชน์ ใครช่วยได้บ้าง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.