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

3
จะลบตัวกรองที่เป็นวัตถุที่ไม่ระบุชื่อได้อย่างไร
ในfunctions.phpไฟล์ของฉันฉันต้องการลบตัวกรองด้านล่าง แต่ฉันไม่แน่ใจว่าจะทำอย่างไรเนื่องจากอยู่ในชั้นเรียน สิ่งที่ควรremove_filter()มีลักษณะอย่างไร add_filter('comments_array',array( &$this, 'FbComments' )); มันอยู่ในสาย 88 ที่นี่
62 filters  oop 

6
ใช้ OOP ในชุดรูปแบบ
ฉันเห็นปลั๊กอินจำนวนมากใช้ประโยชน์จากการเขียนโปรแกรมเชิงวัตถุเมื่อไม่จำเป็นจริงๆ แต่สิ่งที่แย่กว่านั้นคือผู้พัฒนาธีมเริ่มทำสิ่งเดียวกัน ชุดรูปแบบเชิงพาณิชย์และชุดรูปแบบฟรียอดนิยมเช่น Suffusion แม้กระทั่งชุดรูปแบบที่ชื่นชอบ - ไฮบริดมันทำหน้าที่ทั้งหมดของพวกเขาภายในชั้นเรียนยกตัวอย่างหนึ่งครั้งใน WTF? จุดประสงค์ของการทำสิ่งนี้คืออะไร? เห็นได้ชัดว่าคุณจะไม่ได้ใช้อินสแตนซ์ของธีมเดียวกันสองรายการขึ้นไปในเวลาเดียวกัน สมมติว่าปลั๊กอินทำสิ่งนี้สำหรับเนมสเปซ (ซึ่งไร้สาระ) แต่ธีมของข้อแก้ตัวคืออะไร ฉันพลาดอะไรไปรึเปล่า? อะไรคือข้อดีของการเข้ารหัสธีมเช่นนี้?
36 themes  php  oop 

5
ปลั๊กอินทั้งหมดควรถูกห่อหุ้มในคลาสหรือไม่?
เมื่อมีการพัฒนาปลั๊กอินควรมีการจัดกลุ่มฟังก์ชั่นเข้าด้วยกันเป็น Class เพื่อหลีกเลี่ยงความขัดแย้งของ namespace หรือไม่? การใช้คลาสสร้างค่าใช้จ่ายด้านประสิทธิภาพสำหรับ PHP หรือไม่ หากมีการเข้าชมประสิทธิภาพชื่อฟังก์ชันควรได้รับการแก้ไขล่วงหน้าแทนหรือไม่

2
ทำไม hooks บางอันไม่ทำงานในบริบทของคลาส?
ฉันค่อนข้างนิ่งงันกับสิ่งนี้ ฉันใช้ add_action ภายในปลั๊กอินของฉันเพื่อทำบางสิ่ง - เพิ่มสคริปต์และสไตล์ไว้ที่ส่วนหัว wp_ajax ฯลฯ นี่คือการกระทำในโครงสร้าง __: function __construct(){ add_action('admin_menu', array($this, 'sph_admin_menu')); add_action('sph_header', array($this, 'sph_callback')); add_action('sph_header_items', array($this, 'sph_default_menu'), 1); add_action('sph_header_items', array($this, 'sph_searchform'), 2); add_action('sph_header_items', array($this, 'sph_social'), 3); //Below here they don't work. I have to call these outside of the class (but I need class variables within …
16 hooks  actions  oop 

1
การส่งแบบฟอร์มปลั๊กอินวิธีปฏิบัติที่ดีที่สุด
ฉันทำการค้นคว้าจำนวนมากและไม่พบสิ่งที่ฉันกำลังมองหาดังนั้นฉันหวังว่าฉันจะชี้ไปในทิศทางที่ถูกต้อง ฉันกำลังพัฒนาปลั๊กอินกิจกรรมที่จะจองตั๋วจากส่วนหน้า สิ่งนี้ไม่แตกต่างจากการส่งแบบฟอร์มอื่น ๆ แต่สิ่งที่ฉันสับสนกับวิธีการจัดการจากปลั๊กอินที่เขียนผ่าน OOP กับคลาส บทความส่วนใหญ่ที่ฉันพบว่าบอกให้วางการจัดการ $ _POST ไว้ในหน้าเทมเพลต เป็นการดีที่ฉันต้องการให้สิ่งนี้จัดการโดยฟังก์ชันภายในปลั๊กอิน สิ่งอื่น ๆ ที่ฉันไม่แน่ใจคือเมื่อคุณส่งแบบฟอร์มในส่วนหน้าวิธีการที่ได้รับจริงผ่านไปยังฟังก์ชั่นในส่วนหลัง ฉันหวังว่าจะสรุปการประมวลผลแบบฟอร์มได้อย่างสมบูรณ์จากรายละเอียดแม่แบบใด ๆ // events.php if ( ! class_exists( 'Events' ) ) { Class Events { function __construct() { add_action( 'plugins_loaded', array( &$this, 'includes' ), 1 ); } function includes() { require_once( EVENTS_INCLUDES . 'functions.php' ); …

2
การลงทะเบียนวิธีการเรียนเป็นตะขอโทรกลับ
ฉันไม่แน่ใจว่าฉันทำอย่างถูกต้องหรือไม่ ตามที่ฉันเข้าใจ ถ้าฉันมีคลาส foo และแถบวิธีคงที่ฉันสามารถลงทะเบียนเป็น callback โดยผ่านอาร์เรย์array("foo","bar")เป็นชื่อฟังก์ชั่น ถ้าผมมีตัวอย่างของการเรียนใน $ foo array($foo,'bar')หนึ่งและต้องการที่จะเรียกบาร์วิธีการที่ฉันผ่านอาร์เรย์ หากฉันต้องการลงทะเบียนการกระทำภายในชั้นเรียนนั้นจะใช้งานได้array($this,'bar')หรือไม่
16 plugins  hooks  oop 


3
ข้อผิดพลาด PHP พร้อมตัวจัดการรหัสย่อจากคลาส
ขณะนี้ฉันกำลังใช้โฟลว์ทั่วไปต่อไปนี้สำหรับการเพิ่มรหัสย่อสำหรับปลั๊กอิน class MyPlugin { private $myvar; function baztag_func() { print $this->myvar; } } add_shortcode( 'baztag', array('MyPlugin', 'baztag_func') ); ตอนนี้เมื่อชั้นนี้และมันเป็นวิธีการที่เรียกว่าฉันได้รับข้อผิดพลาดดังต่อไปนี้ ข้อผิดพลาดร้ายแรง: ใช้ $ นี่เมื่อไม่ได้อยู่ในบริบทวัตถุใน ... (หมายเลขบรรทัดคือที่ฉันพิมพ์$this->myvar) นี่เป็นปัญหาในตอนท้ายของ Wordpress หรือมีบางอย่างที่ฉันทำผิดหรือเปล่า? ดูเหมือนจะเป็นอะไรที่เรียบง่ายจริงๆ

2
รับ plugin_dir_url () จากส่วนลึกหนึ่งระดับภายในปลั๊กอิน
ฉันเขียนปลั๊กอินหลายตัวโดยใช้โครงสร้าง: /plugins/myplugin/myplugin.php /plugins/myplugin/class/class-myclass.php เพื่อใช้ประโยชน์จาก OO และการจัดโครงสร้างรหัสของฉันโดยรวม จากภายในไฟล์คลาสมีหลายครั้งที่ฉันต้องได้รับ URL ของปลั๊กอินพื้นฐาน ... ฉันใช้สิ่งต่อไปนี้ แต่ฉันแน่ใจว่ามีวิธีที่ดีกว่า: $this->plugin_location = substr(plugin_dir_url(__FILE__),0, strrpos(plugin_dir_url(__FILE__), "/",-2)) . "/"; ความคิดอื่นที่ฉันเล่นด้วยคือการมีคลาสซิงเกิลตันเพิ่มเติมที่เก็บการตั้งค่าทั้งหมดสำหรับปลั๊กอินและเพิ่มเลเยอร์สิ่งที่เป็นนามธรรมผ่านไฟล์คลาส ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

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

3
จะใช้คลาสที่ประกาศในปลั๊กอินอื่นได้อย่างไร?
ฉันกำลังพัฒนาปลั๊กอิน Wordpress Woocommerce ในสภาพแวดล้อมท้องถิ่นของฉันมันทำงานได้ดี แต่ฉันมีปัญหาเมื่อเพิ่มปลั๊กอินลงในแบบจำลองของสภาพแวดล้อมการผลิต ฉันใหม่กับเวิร์ดเพรสและไม่คุ้นเคยกับการพัฒนาเว็บมาก (ฉันเป็นโปรแกรมเมอร์ Java) ในไฟล์ปลั๊กอินฉันยกตัวอย่างคลาสจากแพ็คเกจปลั๊กอิน Woocommerce เช่นนี้ $coupon = new WC_Coupon($some_code); ในสภาพแวดล้อมท้องถิ่น (php 5.4.10, Woocommerce 2.0.13, Wordpress 3.6) ก็ใช้ได้ ในสภาพแวดล้อมการผลิต (php 5.4.10, Woocommerce 1.6.5.2, Wordpress 3.4.2) ฉันมีข้อผิดพลาดดังต่อไปนี้: Fatal error: Class 'WC_Coupon' not found ฉันได้ลองรวมถึงไฟล์ที่กำหนดคลาส WC_Coupon แล้ว แต่เกิดข้อผิดพลาดขึ้น Fatal error: Cannot redeclare class WC_Coupon ดังนั้นวิธีที่เหมาะสมในการใช้คลาสที่ประกาศในปลั๊กอินอื่นคืออะไร? หมายเหตุ: การอัพเกรดไม่ได้เป็นตัวเลือกในขณะนี้
10 plugins  oop 

1
การใช้คลาสปลั๊กอินภายในเทมเพลต
ฉันกำลังเขียนปลั๊กอินเพื่อส่งคำเชิญไปให้เพื่อนที่เปิดแบบฟอร์มขึ้นเมื่อมีการคลิกลิงก์ ฉันสรุปฟังก์ชั่นทั้งหมดในชั้นเรียนโดยทำตามรหัสที่ระบุในปลั๊กอินรายงาน Broken Video โดย @toscho รหัสที่เกี่ยวข้องอยู่ด้านล่าง: /* Plugin Name: Send Invitation Plugin URI: http://w3boutique.net Description: Emails a the link of the current page to a friend Author: Nandakumar Chandrasekhar Version: 0.1 Author URI: http://w3boutique.net/about-nanda.html License: GPL2 */ // include() or require() any necessary files here // Settings and/or Configuration …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.