สำหรับการสร้างis_user_logged_in()
และการcurrent_user_can()
ทำงานฉันพบคำตอบที่คล้ายกันที่นี่ (ไม่สามารถแสดงความคิดเห็น) การเปรียบเทียบตรงกับคำตอบที่นี่เช่น:
การใช้define('SHORTINIT', true)
+ require('wp-load.php')
+ ด้วยตนเองรวมถึง:
Pageload: 1.05 sek - ไฟล์ที่รวมอยู่: 43 ไฟล์
เปรียบเทียบ: ใช้เท่านั้น require('wp-load.php')
:
ไฟล์: 1.35ไฟล์ - รวมไฟล์: 419 ไฟล์
ความแตกต่างของเวลา (0.3 sek) อาจแตกต่างจากการติดตั้งและเอ็นจิ้น PHP แต่ในขณะที่ตรวจสอบคำขอจำนวนมากในหนึ่ง pageload - สิ่งที่เพิ่มขึ้น! / @ Anna Ericson
เป็นความคิดที่ดีที่จะใช้การเรียกที่สัมพันธ์กับ WP ที่ติดตั้ง dir จากปลั๊กอินแบบกำหนดเองของ Wordpress "ROOT" เช่น:
$wordpress = '../../../wp-load.php';
จากนั้นภายในปลั๊กอินของฉัน index.php:
define('SHORTINIT', true);
include_once $wordpress;
require_once ( ABSPATH . WPINC . '/class-wp-user.php' );
require_once ( ABSPATH . WPINC . '/class-wp-roles.php' );
require_once ( ABSPATH . WPINC . '/class-wp-role.php' );
require_once ( ABSPATH . WPINC . '/class-wp-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/formatting.php' );
require_once ( ABSPATH . WPINC . '/capabilities.php' );
//require_once ( ABSPATH . WPINC . '/query.php' ); // - might be useful
require_once ( ABSPATH . WPINC . '/user.php' );
require_once ( ABSPATH . WPINC . '/meta.php' );
wp_cookie_constants();
require_once ( ABSPATH . WPINC . '/vars.php' );
require_once ( ABSPATH . WPINC . '/kses.php' );
require_once ( ABSPATH . WPINC . '/rest-api.php' );
require_once ( ABSPATH . WPINC . '/pluggable.php' );
หลังจากนี้การตรวจสอบผู้ใช้ทำงานได้สำหรับฉัน ขอบคุณ @Anna Ericson คำสุดท้ายจากรหัสต้นฉบับ:
สำหรับงานอื่น ๆ ที่ทำงานในหนึ่งหรือสองคำขอลงติดตามไฟล์ที่จำเป็นอื่น ๆ ที่อาจจะไม่คุ้มค่า 0.3 SEK ข้ามSHORTINIT
ความยุ่งเหยิงคงที่และด้วยตนเอง