ใช้การจัดการข้อผิดพลาด WordPress (ในตัว)
ไม่เพียงแค่return;
ถ้าผู้ใช้บางคนป้อนผิด ส่งข้อมูลบางอย่างเกี่ยวกับพวกเขาว่าทำผิด
function some_example_fn( $args = array() )
{
// If value was not set, build an error message
if ( ! isset( $args['some_value'] ) )
$error = new WP_Error( 'some_value', sprintf( __( 'You have forgotten to specify the %1$s for your function. %2$s Error triggered inside %3$s on line %4$s.', TEXTDOMAIN ), '$args[\'some_value\']', "\n", __FILE__, __LINE__ ) );
// die & print error message & code - for admins only!
if ( isset( $error ) && is_wp_error( $error ) && current_user_can( 'manage_options' ) )
wp_die( $error->get_error_code(), 'Theme Error: Missing Argument' );
// Elseif no error was triggered continue...
}
ข้อผิดพลาดเดียว (วัตถุ) สำหรับทุกคน
คุณสามารถตั้งค่าวัตถุข้อผิดพลาดทั่วโลกสำหรับชุดรูปแบบหรือปลั๊กอินของคุณในช่วง bootstrap:
function bootstrap_the_theme()
{
global $prefix_error, $prefix_theme_name;
// Take the theme name as error ID:
$theme_data = wp_get_theme();
$prefix_theme_name = $theme_data->Name;
$prefix_error = new WP_Error( $theme_data->Name );
include // whatever, etc...
}
add_action( 'after_setup_theme', 'bootstrap_the_theme' );
หลังจากนั้นคุณสามารถเพิ่มข้อผิดพลาดได้ไม่ จำกัด ตามต้องการ:
function some_theme_fn( $args )
{
global $prefix_error, $prefix_theme_name;
$theme_data = wp_get_theme();
if ( ! $args['whatever'] && current_user_can( 'manage_options' ) ) // some required value not set
$prefix_error->add( $prefix_theme_name, sprintf( 'The function %1$s needs the argument %2$s set.', __FUNCTION__, '$args[\'whatever\']' ) );
// continue function...
}
จากนั้นคุณสามารถดึงข้อมูลทั้งหมดได้ในตอนท้ายของธีมของคุณ วิธีนี้คุณจะไม่ขัดจังหวะการแสดงผลหน้าเว็บและยังสามารถส่งออกข้อผิดพลาดทั้งหมดของคุณเพื่อการพัฒนา
function dump_theme_errors()
{
global $prefix_error, $prefix_theme_name;
// Not an admin? OR: No error(s)?
if ( ! current_user_can( 'manage_options' ) ! is_wp_error( $prefix_error ) )
return;
$theme_errors = $prefix_error->get_error_messages( $prefix_theme_name );
echo '<h3>Theme Errors</h3>';
foreach ( $theme_errors as $error )
echo "{$error}\n";
}
add_action( 'shutdown', 'dump_theme_errors' );
คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่Qนี้ ตั๋วที่เกี่ยวข้องเพื่อแก้ไข "ทำงานร่วมกัน" ของWP_Error
และwp_die()
มีการเชื่อมโยงจากที่นั่นและตั๋วอื่นจะตามมา ความเห็นนักวิจารณ์ & ดังกล่าวชื่นชม