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

4
วิธีการตั้งค่าและใช้ตัวแปรทั่วโลก? หรือทำไมไม่ใช้มันเลย
อัปเดต:คำถามเดิมของฉันได้รับการแก้ไขแล้ว แต่นี่กลายเป็นการอภิปรายที่ถูกต้องเกี่ยวกับสาเหตุที่ไม่ใช้ตัวแปรทั่วโลกดังนั้นฉันจึงอัปเดตคำถามเพื่อให้สะท้อนถึงสิ่งนั้น วิธีแก้ไขคือ<?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>ตามที่ @TomJNowell แนะนำ ปรับปรุง 2:ตอนนี้ฉันได้ทำสิ่งที่ฉันต้องการ แต่ฉันยังคงใช้ขอบเขตทั่วโลกและยินดีที่จะหาวิธีที่ดีกว่า ฉันกำลังพยายามตั้งค่าตัวแปรส่วนกลางจำนวนมากเพื่อให้ลิงก์ไปยังหมวดหมู่ถูกใช้ในสถานที่ต่าง ๆ ในธีมของฉัน เหตุผลหลักสำหรับสิ่งนี้คือเพื่อใช้ในการนำทางหลักเช่นเดียวกับในชุดการนำทางย่อยที่เลือกตามประเภทของโพสต์ปัจจุบันที่มีอยู่นี่ไม่ใช่ชุดรูปแบบที่ฉันจะปล่อยให้ผู้อื่นใช้ แต่ถูกสร้างขึ้นเพื่อวัตถุประสงค์เฉพาะอย่างหนึ่งอย่างยิ่ง นี่คือวิธีที่ฉันกำลังสร้างพวกเขาในขณะนี้ (ฉันวางเพียงบางตัวแปร) function set_global_nav_var() { //proposal global $prop; // Get the ID of a given category $category_id_prop = get_cat_ID( 'proposal' ); // Get the URL of this category $category_link_prop = …
27 php  functions  globals 

3
วิธีการ: ตรวจสอบตัวแปรทั่วโลกใน WordPress
ผู้คนมักสับสนเกี่ยวกับวิธีการรับข้อมูลจากวัตถุ / ตัวแปรระดับโลก คำถาม:คุณสามารถตรวจสอบตัวแปรทั่วโลกในรูปแบบใด คำถามนี้เขียนขึ้นเพราะต้องการความสวยบ่อยๆที่ WA ฉันแค่อยากให้มันเป็นลิงก์ที่น่าสนใจที่นี่ (คนมักจะไม่ดูที่ลิงค์ gist github) อย่าลังเลที่จะแก้ไขตัวอย่างถ้ามีอะไรผิดปกติหรือคุณคิดว่าคำอธิบายนั้นหายไป หากคุณต้องการเพิ่มสิ่งที่มีประโยชน์อื่น ๆ โปรดเพิ่มคำตอบแต่ละข้อเป็นคำตอบเดียว ขอขอบคุณ.
22 globals 

1
เราควรไว้วางใจโพสต์กลม
@toscho แสดงความคิดเห็นต่อคำตอบนี้ซึ่งทำให้ฉันคิดอีกครั้ง วิธีการไว้วางใจมากที่สุดเราควรจะมีในขอบเขตทั่วโลกโดยเฉพาะเกี่ยวกับการโพสต์ Globals เช่น$post? แล้วอะไรล่ะ ตัวแปรทั่วโลกสามารถเขียนทับได้จากทุกคนก่อนที่เช็คของคุณจะทำงาน นั่นคือจุดของตัวแปรทั่วโลก: การเข้าถึงทั่วโลก $postเช่นเป็นหนึ่งใน globals ที่มีการปรับเปลี่ยนส่วนใหญ่ทั้งในรูปแบบของตัวเองหรือโดยปลั๊กอิน แต่มันยังเป็นที่นิยมใช้กันทั่วโลกในแอปพลิเคชั่นอื่น ๆ ภายในเทมเพลตที่กำหนดตัวอย่างเช่นการตั้งค่าโพสต์ที่เกี่ยวข้อง จากการตอบ (และแสดงความคิดเห็นใน) โพสต์หลายรายการที่มีปัญหาเฉพาะที่เกิดจากการใช้แบบสอบถามที่กำหนดเองมันชัดเจนว่าปัญหาส่วนใหญ่เกิดขึ้นเนื่องจากแบบสอบถามที่กำหนดเองไม่ได้ถูกตั้งค่าใหม่ จากนี้เห็นได้ชัดว่า$postไม่น่าเชื่อถือ โค้ดที่เขียนไม่ดีใด ๆ ที่ใช้ประโยชน์จากการสืบค้นที่กำหนดเองสามารถเปลี่ยน$postทั่วโลกซึ่งจะทำลายบางสิ่งบางอย่าง (เช่นโพสต์ที่เกี่ยวข้อง) มีนักพัฒนา WordPress เพียงไม่กี่คนเท่านั้นที่มีความรู้เพียงพอในการทำงานด้านในของคอร์และรู้ว่าต้องหลีกเลี่ยงอะไรบ้าง จำนวนผู้ใช้งานที่มากขึ้นไม่รู้ว่า WordPress แกนทำงานอย่างไร พวกเขาเพียงแค่ดาวน์โหลดธีมและติดตั้งปลั๊กอินเพื่อทำสิ่งที่จำเป็นหรือเพียงแค่คัดลอกโค้ดจากบทช่วยสอน สมมติว่าพวกเขาติดตั้งปลั๊กอินที่เขียนไม่ดีซึ่งแบ่งโพสต์ที่เกี่ยวข้องไว้ในโพสต์เดียวพวกเขาจะรู้ได้อย่างไรว่าเกิดอะไรขึ้น พวกเขาจะสามารถเรียงลำดับตัวเองออกมาหรือพวกเขาจะเป็นร้อยคนที่เขียนอีเมลถึงผู้แต่งธีมเกี่ยวกับปัญหานี้หรือโพสต์คำถามบนไซต์นี้หรือไม่? คำถามของฉัน:คุณจะสามารถป้องกันปัญหาดังกล่าวที่เกิดจากรหัสนำเข้าอื่น ๆ ได้อย่างไรเมื่อสิ่งที่ทั่วโลกต้องการ$postนั้นไม่น่าเชื่อถือ? เราควรจะใช้สิ่งที่เป็นสากล$postหรือไม่? ทางเลือกคืออะไร? เพียงเพื่อแบ่งปันความคิดของฉันที่นี่ก่อนที่ผมจะสรุป: ผมคิดว่า (และที่เห็นในรูปแบบบางและปลั๊กอินด้วย) ทั้งการใช้wp_reset_postdata()หรือwp_reset_query()ก่อนที่จะทำให้การใช้เพื่อให้แน่ใจว่าโลกจะถูกรีเซ็ตของแบบสอบถามหลัก$post $postแต่ทำไมฉันควรขยายโค้ดของฉันในชุดรูปแบบของฉันเพราะคนอื่นไม่ได้รหัสปลั๊กอินของเขาอย่างถูกต้อง? และหากมีคนรีเซ็ตการสืบค้นที่กำหนดเองอย่างถูกต้องการดำเนินการนี้จะทำงานเป็นครั้งที่สองโดยไม่จำเป็นซึ่งไม่ดี วิธีที่สองผมคิดว่าการที่จะทำให้การใช้งานของแล้วใช้วิธีการบางอย่างเช่น$wp_query$wp_query->post ความคิดใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชม

4
WordPress Multisite - หมวดหมู่ทั่วโลก
การตั้งค่าอินสแตนซ์ WP multisite - ไคลเอนต์มี ontology / ชุดหมวดหมู่ที่มีอยู่ที่พวกเขาต้องการจัดหมวดหมู่เนื้อหาทั้งหมดในชุดของบล็อก ความปรารถนาก็คือหมวดหมู่ใหม่ใด ๆ จะถูกเพิ่มในระดับ 'บล็อกเครือข่าย' และซิงค์กับบล็อกอื่น ๆ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

1
วิธีการส่งผ่านข้อโต้แย้งจาก add_settings_field () เพื่อฟังก์ชั่นการโทรกลับ?
ฉันมีฟังก์ชั่นเช่นนี้: add_settings_field( 'contact_phone', 'Contact Phone', 'settings_callback', 'general'); ที่ได้ผล มันเรียก settings_callback เย็น. ปัญหาที่ฉันมีคือ: ฉันไม่ต้องการกำหนดฟังก์ชั่นการโทรกลับสำหรับทุกการตั้งค่าที่ฉันเพิ่มถ้าสิ่งที่ฉันทำคือการสะท้อนสิ่งเล็กน้อย function settings_callback() { echo '<input id="contact_phone" type="text" class="regular-text" name="contact_phone" />'; } ทำไมบนโลกนี้ฉันต้องทำอย่างนั้น? ID คลาสและชื่อทั้งหมดควรเป็นพารามิเตอร์ ไม่มีวิธีการส่งต่อพารามิเตอร์ไปที่ฟังก์ชั่น settings_callback หรือไม่ ฉันเริ่มดูหลักมาที่นี่: http://core.trac.wordpress.org/browser/tags/3.1.3/wp-admin/includes/template.php .. และพบกับ $ wp_settings_fields ทั่วโลก สิ่งนี้กำหนดไว้ที่ไหน?

2
อะไรคือทางเลือกที่ดีในการใช้ $ content_width สำหรับการปรับภาพให้เหมาะสม
$content_widthระดับโลกในด้านผลกระทบธีม WordPress จำนวนมากและยังปลั๊กอินบางส่วนโดยการ จำกัด ขนาดของภาพและการฝังในการโพสต์ก็เป็นความต้องการสำหรับรูปแบบที่ส่งไปยัง wordpress.org มันถูกตั้งค่าโดยใช้: $content_width = 584; // Twenty Twelve example หากคุณแทรกภาพขนาดใหญ่ (ค่าเริ่มต้น 1024x1024) ลงในโพสต์จะส่งผลให้: src="../wp-content/uploads/2013/02/IMG_1390-1024x682.jpg" width="584" height="328" หากคุณลบการตั้งค่าส่วนกลางนี้และใส่ขนาดภาพจริงให้ตั้งค่าโดยadd_image_sizeใช้ผลลัพธ์: src="../wp-content/uploads/2013/02/IMG_13901-584x328.jpg" width="584" height="328" การลบภาพขนาดใหญ่ทั่วโลกและแทรกภาพขนาดใหญ่ซึ่งเป็นเรื่องปกติมากมักส่งผลให้ประหยัดได้มากกว่า 2x ในหน้าเว็บที่มีภาพหลายภาพฉันเห็นการบันทึกหลายร้อย KBเมื่อโหลดหน้าเว็บ การใช้add_image_sizeและการลบความสามารถในการแทรกภาพขนาดเต็มไม่ใช่ตัวเลือกที่ดีกว่าหรือไม่ PS ฉันเขียนถึงที่นี่พร้อมกับข้อมูลที่แม่นยำยิ่งขึ้น

1
การส่งตัวแปรจาก header.php ไปยังเทมเพลตและ verca รอง
ฉันได้กำหนดตัวแปร - เรียกมันว่า$header_varซึ่งวางอยู่ในไฟล์ header.php ฉันต้องการให้ตัวแปรนี้ถูกส่งผ่านไปยังไฟล์เทมเพลตของฉัน (ในกรณีนี้คือ taxonomy.php) นอกจากนี้ฉันต้องการทำแบบเดียวกันกับที่อื่น ๆ เช่นผ่าน$template_varจาก taxonomy.php ของฉันไปยัง header.php เป็นไปได้หรือไม่ที่จะไม่ประกาศตัวแปรเมื่อโหลดส่วนหัวแล้ว ฉันลองใช้ทั่วโลก$header_varแต่ไม่มีโชค ข้อเสนอแนะใด ๆ

4
ขอบเขตตัวแปร WordPress Theme
ฉันต้องสร้างตัวแปรที่สามารถเข้าถึงได้ตลอดทั้งไฟล์เทมเพลต WordPress Theme (index.php, header.php ฯลฯ .. ) ฉันรู้ว่าคำจำกัดความของฟังก์ชั่นนั้นอยู่ในfunctions.phpไฟล์เทมเพลต (ในพา ธ ธีมของคุณ) แต่ไม่มีตัวแปรสำหรับสิ่งนั้น ตัวอย่างเช่นฉันต้องดึงหมวดหมู่ในธีมของฉันอย่างต่อเนื่องดังนั้นฉันจึงต้องการให้เข้าถึงได้จากทุกที่ในธีมของฉัน: $categories = get_categories(); /* get_categories() is a wordpress function */ วิธีนี้ฉันสามารถเข้าถึงข้อมูลที่จัดสรรได้โดยไม่ต้องจัดสรรใหม่ทุกครั้งที่ต้องการหมวดหมู่ของฉัน แต่น่าเสียดายที่การเพิ่มชิ้นส่วนของรหัสในของฉันที่ไฟล์ไม่ทำงานไม่ไม่ทำให้ตัวแปรfunctions.phpglobal
9 php  themes  globals 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.