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

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

4
ปัญหาเกี่ยวกับ title-tag และ document_title_parts
Wordpress version 4.5.1 ฉันพยายามอัปเดตชื่อหน้าเว็บในเทมเพลตเฉพาะ หลังจากที่จำนวนมากของการขุดและการเรียนรู้เกี่ยวกับการเปลี่ยนแปลงที่ฉันพยายามที่จะใช้wp_title() document_title_partsอย่างไรก็ตามฉันไม่สามารถเรียกใช้ตัวกรองได้เลย ฉันอยู่ในชุดรูปแบบของเด็กfunctions.php: add_theme_support( 'title-tag' ); //add_filter("after_setup_theme", function(){ add_theme_support("title-tag"); }); add_filter( 'document_title_parts', function( $title ) { error_log('here'); return $title; }, 10, 1 ); ฉันลองทั้งสองรูปแบบของการเพิ่มการสนับสนุนชุดรูปแบบตามที่แสดงด้านบน แต่ดูบันทึกของฉันไม่มีอะไรปรากฏบนหน้าโหลดซ้ำ ที่error_logทำงานกับฟังก์ชั่นอื่น ๆ (เช่นwp_title) ดังนั้นการบันทึกข้อผิดพลาดจึงใช้งานได้ ฉันได้ลองpre_get_document_titleแล้วเช่นกันซึ่งใช้งานในการโหลดหน้าเว็บ แต่ฉันไม่สามารถเปลี่ยนชื่อได้ ดังนั้น! ฉันกำลังใช้ตัวกรองไม่ถูกต้องไม่ได้ตั้งค่าชุดรูปแบบของฉันอย่างถูกต้องหรืออย่างอื่นที่ฉันไม่ทราบ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! แก้ไขเพื่อเพิ่มรายละเอียดเพิ่มเติม กำลังพยายามฟังก์ชั่น init แต่ไม่ได้ผล: https://gist.github.com/anonymous/6db5af892a4cf4fb029655167d7002a4 นอกจากนี้ในขณะที่ฉันลบการอ้างอิงใด ๆ ออก<title>จากheader.phpชื่อไซต์จริงยังคงปรากฏในแหล่งที่มา

6
แหล่งเก็บไฟล์ PHP ที่สร้างโดยปลั๊กอิน / ธีม
มีหลายกรณีที่ปลั๊กอินหรือชุดรูปแบบจำเป็นต้องสร้างไฟล์ php ไว้ที่ใดที่หนึ่งซึ่งสามารถรวมในภายหลังได้ ตัวอย่างเช่นปลั๊กอิน captcha หรือระบบ templating เช่น twig / smarty (ในสถานการณ์ของฉันมันเป็นเครื่องมือเทมเพลตอย่างง่ายสำหรับคอลเลกชันของวิดเจ็ต) ไฟล์นี้ควรสร้างที่ไหน? ที่เดียวที่ฉันนึกได้คือwp-content/uploads/แต่นั่นก็ไม่ถูกต้อง :) ดังนั้นมีสถานที่ที่ปลอดภัยที่คุณสามารถสร้างไฟล์และไม่ต้องกังวลเกี่ยวกับพวกเขาจะถูกลบในการปรับปรุง WordPress / ปลั๊กอิน / ชุดรูปแบบ? ทางออกหนึ่งคือการสร้างธีมลูก / ไดเรกทอรีในไดเรกทอรี themes / plugins ...

1
The_post_thumbnail ไม่มี srcset หรือไม่
WordPress 4.4 เพิ่มรูปภาพหลายขนาดด้วยsrcsetเมื่อใช้the_post_thumbnailฟังก์ชัน เป็นไปได้หรือไม่ที่จะได้ขนาดภาพเดียวโดยไม่มี srcset? ฉันเข้าใจว่าเป็นไปได้ที่จะเพิ่มตัวกรองเพื่อปิดการใช้งานsrcsetจากภาพทั้งหมด แต่ฉันต้องการที่จะปิดการใช้งานsrcsetเฉพาะเมื่อเรียกขนาดภาพขนาดย่อที่เฉพาะเจาะจง (ตัวอย่างเช่นเมื่อโทรขนาดภาพเต็มเท่านั้น)

2
จะเก็บข้อมูลฟิลด์วิดเจ็ตเป็นอาร์เรย์ได้อย่างไร?
ฉันกำลังสร้างวิดเจ็ตมันต้องเก็บประมาณ 10 ID ตอนนี้ฉันใช้เมธอดฟิลด์ต่อไปนี้เพื่อจัดเก็บแต่ละ ID ในฟิลด์แยก มันเก็บข้อมูลของแต่ละฟิลด์ในแยกใน wordpress เป็นไปได้หรือไม่ที่จะเก็บข้อมูลของทุกฟิลด์ในหนึ่งแถวใน wordpress สำหรับการสอบโดยใช้อาร์เรย์? <input class="widefat" id="<?php echo $this->get_field_id('item1_id'); ?>" name="<?php echo $this->get_field_name('item1_id'); ?>" value="<?php echo $instance['item1_id']; ?>" /> <input class="widefat" id="<?php echo $this->get_field_id('item2_id'); ?>" name="<?php echo $this->get_field_name('item2_id'); ?>" value="<?php echo $instance['item2_id']; ?>" />

1
มีการเรียงลำดับของการจัดการชุดรูปแบบใด ๆ ?
ฉันกำลังพัฒนาธีม Wordpress กับบุคคลอื่นไม่กี่คนและกำลังประสบปัญหาที่ฉันเพิ่มปลั๊กอินจากนั้นฉันได้บอกผู้พัฒนารายอื่นเกี่ยวกับปลั๊กอินที่ฉันติดตั้งและการตั้งค่าที่ฉันตั้งไว้สำหรับปลั๊กอินเพื่อให้ชุดรูปแบบทำงานได้ ฉันสงสัยว่ามีวิธีการเชื่อมโยงปลั๊กอินกับชุดรูปแบบเพื่อให้เมื่อบุคคลได้รับชุดรูปแบบชุดรูปแบบรู้ปลั๊กอินที่ต้องการและสามารถติดตั้งได้โดยอัตโนมัติและรุ่นที่ถูกต้องของพวกเขา ฉันคิดว่าฉันกำลังมองหาการจัดการบางอย่างสำหรับธีม Wordpress มีอะไรแบบนั้นมั้ย

3
เมนู Wordpress API / คำสั่งย่อยเมนู
ฉันกำลังพัฒนาเด็กชุดรูปแบบโดยใช้Wordpress 3.4.2และรุ่นพัฒนาของตัวเลือกกรอบโดยเดวิดไพร นี่เป็นธีมแรกของฉันและฉันค่อนข้างใหม่ดังนั้นฉันจึงได้ตรวจสอบWordpress Codexและตรวจสอบการลงทะเบียนรายการลงใน API โดยไม่ต้องยุ่งเกี่ยวกับไฟล์ภายนอกใด ๆ ที่อยู่นอกชุดรูปแบบของฉันฉันสงสัยว่ามีวิธีการจัดเรียงใหม่ที่หน้าตัวเลือกชุดรูปแบบที่อยู่ภายในลำดับชั้นของเมนูลักษณะ - ดังนั้นเมื่อเปิดใช้งานชุดรูปแบบของฉันตำแหน่งไม่เหมือน ภาพแรก แต่เหมือนภาพที่สอง ฉันรู้ว่าคุณสามารถสร้างเมนูได้ (เช่นแท็บลักษณะที่ปรากฏ , ปลั๊กอิน , ผู้ใช้ฯลฯ ) หรือเมนูย่อย ( ธีม , วิดเจ็ต , เมนูฯลฯ ) แต่ฉันจะไปเกี่ยวกับการตั้งค่าเมนูย่อยอย่างไรพูดที่สอง จากด้านบน? จากสิ่งที่ฉันรวบรวมบางที่มีคำสั่งถูกเรียกและหน้าอื่น ๆ เพิ่มเติมภายในfunctions.phpไฟล์ถูกวางไว้หลังจากที่? ในไฟล์ functions.php ของฉัน: // Add our "Theme Options" page to the Wordpress API admin menu. if ( !function_exists( …

5
after_setup_theme จะทำงานเสมอ
ฉันกำลังตั้งค่าชุดรูปแบบเด็กสำหรับอาจารย์ของฉันและเป็นส่วนหนึ่งของชุดรูปแบบฉันต้องการปลั๊กอินที่จะเปิดใช้งานได้ในเวลาที่เปิดใช้งานชุดรูปแบบ ดังนั้นโดยธรรมชาติฉันใช้การกระทำ after_setup_theme และเรียกว่าฟังก์ชั่นการตั้งค่าของฉัน มันใช้งานได้ดียกเว้นทำงานบนคำขอทุกคน (ผู้ดูแลระบบและอื่น ๆ ) ฉันพิสูจน์แล้วโดยเพิ่มสิ่งนี้ไปยังจุดสิ้นสุดของฟังก์ชั่นการตั้งค่า: echo '<script type="text/javascript">alert("This action was run")</script>'; และด้วยเหตุนี้จึงได้รับการแจ้งเตือนจาวาสคริปต์ในทุกคำขอของผู้ดูแลระบบและทุกคำขอของ front-end (ฉันมีการตั้งค่าเครือข่ายดังนั้นจึงเห็นได้ชัดบนเว็บไซต์ที่ชุดรูปแบบนี้ไม่ได้เปิดใช้งาน ดังนั้นคำถามคือนี่เป็นข้อผิดพลาดหรือไม่? ฉันกำลังทำอะไรผิดหรือเปล่า? นี่คือรหัสที่ฉันใช้: add_action( 'after_setup_theme', 'fwp_setup' ); function fwp_setup(){ // -- Unrelated code remove for the sake of brevity require_once($_SERVER['DOCUMENT_ROOT'].'/wp-admin/includes/plugin.php'); activate_plugin('enable-media-replace/enable-media-replace.php'); activate_plugin('seo-image/seo-friendly-images.php'); activate_plugin('w3-total-cache/w3-total-cache.php'); echo '<script type="text/javascript">alert("This action was run")</script>'; } ความเข้าใจใด ๆ …

3
ฉันจะเพิ่มการควบคุมเวอร์ชันในเวิร์กโฟลว์ของฉันได้อย่างไร
ฉันพัฒนาชุดรูปแบบพวกเขามากมาย ฉันได้รับ PSD โค้ด HTML / CSS ตบรหัสลงใน Wordpress และทำการแก้ไขตามที่พวกเขาได้รับ QC'd เมื่อเผยแพร่แล้วลูกค้าสามารถแก้ไขโพสต์บล็อกเช่นปกติหรืออัปโหลดรูปภาพโดยใช้ปลั๊กอินที่กำหนดเอง บางครั้งฉันต้องทำการเปลี่ยนแปลงชุดรูปแบบหรือเนื้อหาของหน้า / โพสต์ซึ่งหมายความว่าฉันทำให้พวกเขาอยู่หรือต้องดาวน์โหลดและติดตั้งเว็บไซต์เพื่อสภาพแวดล้อมการพัฒนาที่จะได้รับอนุมัติจากลูกค้า ฉันไม่มีการสำรองข้อมูลฉันไม่มีการควบคุมเวอร์ชันและฉันรู้ว่าสิ่งนี้จำเป็นต้องเปลี่ยน ได้รับการแนะนำให้ใช้ Git และ Mercurial และฉันต้องการใช้ประโยชน์จากเครื่องมือเหล่านี้ แต่ฉันสับสนเกี่ยวกับวิธีปรับให้เหมาะกับเวิร์กโฟลว์ ฉันต้องมีการเปลี่ยนแปลงทั้งหมดในเว็บไซต์บนเซิร์ฟเวอร์การพัฒนาหรือไม่จากนั้นผลักดันให้พวกเขามีชีวิตอยู่เมื่อได้รับอนุมัติแล้วหรือไม่? แล้วการเขียนบทความในบล็อกล่ะ ดูเหมือนว่า overkill ในการเขียนโพสต์บน dev และผลักดันการเปลี่ยนแปลงแบบสดๆ แต่ฉันจะซิงค์ฐานข้อมูลได้อย่างไรถ้ามีการแก้ไขบนเว็บไซต์จริง ฉันขัดถูอินเทอร์เน็ต คำแนะนำบางอย่างจะได้รับการชื่นชม

1
ใช้คลาสแทนฟังก์ชั่นระดับโลกใน functions.php
ในหลาย ๆ ธีมที่ฉันเห็น (รวมถึง TwentyEleven) และในตัวอย่างที่ฉันพบทางออนไลน์เมื่อสร้างfunctions.phpไฟล์สำหรับธีมฟังก์ชั่นทั้งหมดจะประกาศในขอบเขตทั่วโลก เพื่อชี้แจงนี่คือลักษณะของไฟล์ฟังก์ชั่นทั่วไป: function my_theme_do_foo() { // ... } function my_theme_do_bar() { // ... } add_action( 'foo_hook', 'my_theme_do_foo' ); สำหรับฉันมันดูเหมือนว่าสิ่งต่าง ๆ อาจจะ "ห่อหุ้ม" ดีขึ้นเล็กน้อยหากใช้คลาส class MyTheme { function do_foo() { // ... } function do_bar() { // ... } } $my_theme = new MyTheme(); add_action( 'foo_hook', …

4
wp_redirect () - ส่งส่วนหัวแล้ว
ฉันพยายามใช้wp_redirect()เพื่อเปลี่ยนเส้นทางผู้ใช้หลังจากส่งแบบฟอร์มการสมัครบนหน้าเว็บสำเร็จ มันไม่ทำงานและแสดงข้อผิดพลาดต่อไปนี้: คำเตือน: ไม่สามารถแก้ไขข้อมูลส่วนหัว - ส่วนหัวที่ส่งไปแล้ว (เอาต์พุตเริ่มต้นที่ /Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10) ใน / Applications / MAMP / htdocs / theme / wp- รวมถึง / pluggable.php ในบรรทัด 1178 ฉันเข้าใจว่ามีการแสดงผลก่อนหน้านี้แล้วนั่นเป็นเหตุผลว่าทำไมมันไม่ทำงาน แต่ฉันก็ไม่รู้ว่าจะใช้งานอย่างไร ฟอร์มการสมัครใช้งานแสดงผลโดยฟังก์ชั่นและส่งโดยฟังก์ชั่นอื่นภายในฟังก์ชั่นของฉัน if ( isset( $_POST['subscribe'] ) ) { // Submits the form and should then redirect wp_redirect("/thank-you/"); exit; } จากนั้นทั้งสองฟังก์ชั่นเหล่านี้จะใช้ในที่ที่ฉันต้องการแสดงแบบฟอร์มการสมัคร ฉันกลัวว่าไม่ใช่สิ่งที่ดีที่สุดที่จะทำ ฉันควรจะสร้างการกระทำบางอย่างที่ทำเช่นนั้น แต่ฉันไม่รู้ว่าจะใช้งานอย่างไร บทเรียนส่วนใหญ่ที่ฉันพบแสดงผลลัพธ์โดยตรงในหน้าเดียวกันและไม่ต้องการการเปลี่ยนเส้นทางเพิ่มเติม …

1
จัดวางสไตล์ชีทสำหรับหน้าล็อกอินและทำให้มันปรากฏในองค์ประกอบส่วนหัว
ฉันพยายามจัดรูปแบบหน้าล็อกอินในชุดรูปแบบของฉัน ง่ายมาก: add_action( 'login_enqueue_scripts', function() { wp_enqueue_style( 'TEST', get_template_directory_uri() . '/css/login.css' ); }); น่าเสียดายที่มันไม่ทำงานตามที่คาดไว้ linkองค์ประกอบปรากฏในbodyของหน้าเข้าสู่ระบบดึกมาก ผลลัพธ์การแสดงผล: <link rel='stylesheet' id='TEST-css' href='http://themes.wp/t5-theme-base/css/login.css?ver=3.9-alpha' type='text/css' media='all' /> <div class="clear"></div> </body> </html> นี้เป็นธรรมว่าฉันสามารถพิมพ์องค์ประกอบการเชื่อมโยงในhead?

4
ฉันต้องเชื่อมโยง style.css ของธีมของฉันกับไฟล์ธีมหรือไม่
ดังนั้นฉันจึงพัฒนาธีมเวิร์ดเพรสโดยใช้ชุดไฟล์ LESS สำหรับ CSS คอมไพล์เหล่านี้โดยใช้ codekit เพื่อสไตล์ชีทที่รวมกันและแบบย่อที่ฉันใช้สำหรับการกำหนดสไตล์ของธีม ฉันเข้าใจชุดรูปแบบ wordpress ต้องมี style.css ซึ่งมีข้อมูลเกี่ยวกับชุดรูปแบบในความคิดเห็น แต่จำเป็นต้องเชื่อมโยง style.css นี้ใน header.php หรือไม่ แน่นอนฉันสามารถมีข้อมูลชุดรูปแบบในนั้นและไม่มีอะไรอื่นและทิ้งไว้ในโฟลเดอร์ชุดรูปแบบ สไตล์ชีทที่ฉันใช้จริงสามารถเรียกได้ว่า styles.css หรือ main.css หรืออะไรก็ได้ ใครสามารถยืนยันสิ่งนี้หรือให้เหตุผลว่าทำไมสิ่งนี้อาจเป็นความคิดที่ไม่ดี?

7
การเพิ่ม div เพื่อตัดเนื้อหาวิดเจ็ตหลังชื่อวิดเจ็ต
ฉันพยายามเพิ่ม div ในเนื้อหาวิดเจ็ตในแถบด้านข้างแบบไดนามิกของฉัน นี่คือรหัสลงทะเบียน register_sidebar(array( 'name' => "Sidebar1", 'id' => 'home-sidebar-1', 'before_widget' => '<div class="sidebar-box">', 'after_widget' => '</div>', 'before_title' => '<div class="title">', 'after_title' => '</div>', )); แต่รหัสนี้ทำให้เกิดเช่นนี้ <div class="sidebar-box"> <div class="title">{WIDGET TITLE}</div> {WIDGET CONTENT} </div> นี่คือสิ่งที่ฉันพยายามทำ; <div class="sidebar-box"> <div class="title">{WIDGET TITLE}</div> <div class="content"> {WIDGET CONTENT} </div> </div> สามารถทำได้อย่างไร?

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

5
รับภาพแรกจากเนื้อหาโพสต์ (เช่นภาพที่ลิงก์)
ฉันกำลังใช้รหัสนี้โดยตรงจากCodex function echo_first_image ($postID) { $args = array( 'numberposts' => 1, 'order'=> 'ASC', 'post_mime_type' => 'image', 'post_parent' => $postID, 'post_status' => null, 'post_type' => 'attachment' ); $attachments = get_children( $args ); //print_r($attachments); if ($attachments) { foreach($attachments as $attachment) { $image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) …

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