วิธีส่งข้อความออกระหว่างการเปิดใช้งานปลั๊กอิน


10

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

คำตอบ:


9

สำหรับวัตถุประสงค์ในการทดสอบคุณสามารถใช้ระบบบันทึก (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

หากต้องการส่งออกข้อผิดพลาดไปยังผู้ใช้ที่ไม่มีข้อผิดพลาด "ส่วนหัวที่ส่งไปแล้ว" คุณสามารถใช้ฟังก์ชัน php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

ด้วย Wordpress จะต้องเป็น E_USER_ERROR เสมอมิฉะนั้นจะไม่แสดงข้อความ

ฉันรู้ว่า error_log ทำงานได้อย่างสมบูรณ์ตั้งแต่ฉันใช้งาน แต่ trigger_error แสดงข้อมูลที่ต้องเป็น ลองและดูด้วยตัวคุณเอง :)


คุณรู้หรือไม่ว่าฉันสามารถหาเอกสารเพิ่มเติมเกี่ยวกับฟังก์ชัน error_log ได้ที่ไหน ฉันมีปัญหาในการหาวิธีทำให้มันใช้งานได้
Nathan Arthur

สำหรับผู้ที่อาจมาหลังจาก: php.net/manual/en/function.error-log.php
นาธานอาร์เธอร์

4

สารละลาย:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

ใส่รหัสนี้ในปลั๊กอินและหลังจากเกิดข้อผิดพลาดให้ดู "my_loggg.txt" ในโฟลเดอร์ปลั๊กอินของคุณ


สิ่งนี้ใช้ได้สำหรับฉัน แต่ฉันต้องวางไว้ที่ด้านล่างของไฟล์! มิฉะนั้นจะไม่ได้จับเอาท์พุท
Ben Ogorek

0

1) โปรดลบการเว้นวรรคพิเศษในหน้าภายในหรือหน้าปลั๊กอิน

2) ลบสไตล์อินไลน์ในหน้าหรือหน้าปลั๊กอิน

มันทำงานให้ฉันทุกครั้ง ฉันใช้วิธีเดียวกันหลายครั้ง เมื่อเกิดปัญหาข้อผิดพลาดในหน้าปลั๊กอินหรือหน้า Wordpress

ความนับถือ,

Hitesh Nagpal

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