admin管理员组文章数量:1130349
I made my own upload service for my website that is separate from WP, but uses WP to provide low level db functions and user verification. To do that, I include wp-load.php in my main script (Uploadify) but doing that seems to fill the server's memory with unnecessary components. Thanks to that, I'm seeing an error in my script that seems to point to a installed WP plugin.
How can I load only the core WP components and ignore plugins? Is this even possible?
I made my own upload service for my website that is separate from WP, but uses WP to provide low level db functions and user verification. To do that, I include wp-load.php in my main script (Uploadify) but doing that seems to fill the server's memory with unnecessary components. Thanks to that, I'm seeing an error in my script that seems to point to a installed WP plugin.
How can I load only the core WP components and ignore plugins? Is this even possible?
Share Improve this question asked Apr 3, 2012 at 18:09 MechEngineerMechEngineer 3732 silver badges11 bronze badges 1- 1 Check out BackPress. – soulseekah Commented Apr 3, 2012 at 18:28
4 Answers
Reset to default 10Disabling plugins entirely means you loose many advantages.
There are distributions of wordpress that go further and rip out posts and links etc, but they'll always lag behind WordPress core and tend not to survive as long.
Here are some things that could be done
Short Init
Putting this in your wp-config.php:
define( 'SHORTINIT', TRUE );
Or defining it somewhere before you load in wordpress, should reduce the loading process and pull it back to minimal core functions.
Secondary lightweight installs
Setup a second wordpress installation, with only the plugins and themes you want (if any). Then configure the wp-config.php to use the same wp-content directory and database values.
Backpress
WordPress, the original BBpress and glotpress amongst others are built around the BackPress library. You could use this instead of WordPress to do your work though numerous APIs and features may be missing or in need of re-implementation/porting
Option tables
I would also bear in mind that WordPress loads the entire options table into memory to cut down on queries, if you're saving any large values in there it'll impact on performance.
Exiting early
You could also try hooking into earlier functions in the WordPress load process and exiting the PHP process before WordPress is finished, but I can't advise on how safe that would be.
Selectively loading plugins
There is also this article on selectively loading plugins, but it does require hacks to the wordpress core files
For making is_user_logged_in() and current_user_can() work, I found similar answer here (Cant comment) The comparsion matches answers here, as:
Using define('SHORTINIT', true) + require('wp-load.php') + manually includes:
Pageload: 1.05 sek - included files: 43 files
Comparing: Using ONLY require('wp-load.php'):
Pageload: 1.35 sek - included files: 419 files
The time difference (0.3 sek) might differ from installs and PHP engines, but while validating many requests on one pageload -things adds up! /@Anna Ericson
It was a good idea to use a relative call to WP installed dir. From a Wordpress custom plugin "ROOT" like:
$wordpress = '../../../wp-load.php';
Then inside my plugin 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' );
After this, user validation is working for me. Thanks to @Anna Ericson final words from original code:
For other task, running on one or two requests, tracking down other needed files might not be worth 0.3 sek. Skip the
SHORTINITconstant and manually clutter.
Use BackPress, but i have small developments, where i use a default install and smaller source via const.
see on the wp-settings.php
// Stop most of WordPress from being loaded if we just want the basics.
if ( SHORTINIT )
return false;
Set the const SHORTINIT on true in the wp-config.php and see the fast run.
define( 'SHORTINIT', TRUE );
These are the files you get:
// All are located in ABSPATH.WPINC
'/load.php'
'/default-constants.php'
'/version.php'
'/compat.php'
'/functions.php'
'/class-wp.php'
'/class-wp-error.php'
'/plugin.php'
'/default-filters.php'
'/pomo/mo.php'
// Only Multisite
'/ms-blogs.php'
'/ms-settings.php'
Have you tried define('SHORTINIT', true);? I haven't tested it myself, but it seems to load very few aspects of WP core while retaining enough functionality, especially if all you want is to deal with the database.
I made my own upload service for my website that is separate from WP, but uses WP to provide low level db functions and user verification. To do that, I include wp-load.php in my main script (Uploadify) but doing that seems to fill the server's memory with unnecessary components. Thanks to that, I'm seeing an error in my script that seems to point to a installed WP plugin.
How can I load only the core WP components and ignore plugins? Is this even possible?
I made my own upload service for my website that is separate from WP, but uses WP to provide low level db functions and user verification. To do that, I include wp-load.php in my main script (Uploadify) but doing that seems to fill the server's memory with unnecessary components. Thanks to that, I'm seeing an error in my script that seems to point to a installed WP plugin.
How can I load only the core WP components and ignore plugins? Is this even possible?
Share Improve this question asked Apr 3, 2012 at 18:09 MechEngineerMechEngineer 3732 silver badges11 bronze badges 1- 1 Check out BackPress. – soulseekah Commented Apr 3, 2012 at 18:28
4 Answers
Reset to default 10Disabling plugins entirely means you loose many advantages.
There are distributions of wordpress that go further and rip out posts and links etc, but they'll always lag behind WordPress core and tend not to survive as long.
Here are some things that could be done
Short Init
Putting this in your wp-config.php:
define( 'SHORTINIT', TRUE );
Or defining it somewhere before you load in wordpress, should reduce the loading process and pull it back to minimal core functions.
Secondary lightweight installs
Setup a second wordpress installation, with only the plugins and themes you want (if any). Then configure the wp-config.php to use the same wp-content directory and database values.
Backpress
WordPress, the original BBpress and glotpress amongst others are built around the BackPress library. You could use this instead of WordPress to do your work though numerous APIs and features may be missing or in need of re-implementation/porting
Option tables
I would also bear in mind that WordPress loads the entire options table into memory to cut down on queries, if you're saving any large values in there it'll impact on performance.
Exiting early
You could also try hooking into earlier functions in the WordPress load process and exiting the PHP process before WordPress is finished, but I can't advise on how safe that would be.
Selectively loading plugins
There is also this article on selectively loading plugins, but it does require hacks to the wordpress core files
For making is_user_logged_in() and current_user_can() work, I found similar answer here (Cant comment) The comparsion matches answers here, as:
Using define('SHORTINIT', true) + require('wp-load.php') + manually includes:
Pageload: 1.05 sek - included files: 43 files
Comparing: Using ONLY require('wp-load.php'):
Pageload: 1.35 sek - included files: 419 files
The time difference (0.3 sek) might differ from installs and PHP engines, but while validating many requests on one pageload -things adds up! /@Anna Ericson
It was a good idea to use a relative call to WP installed dir. From a Wordpress custom plugin "ROOT" like:
$wordpress = '../../../wp-load.php';
Then inside my plugin 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' );
After this, user validation is working for me. Thanks to @Anna Ericson final words from original code:
For other task, running on one or two requests, tracking down other needed files might not be worth 0.3 sek. Skip the
SHORTINITconstant and manually clutter.
Use BackPress, but i have small developments, where i use a default install and smaller source via const.
see on the wp-settings.php
// Stop most of WordPress from being loaded if we just want the basics.
if ( SHORTINIT )
return false;
Set the const SHORTINIT on true in the wp-config.php and see the fast run.
define( 'SHORTINIT', TRUE );
These are the files you get:
// All are located in ABSPATH.WPINC
'/load.php'
'/default-constants.php'
'/version.php'
'/compat.php'
'/functions.php'
'/class-wp.php'
'/class-wp-error.php'
'/plugin.php'
'/default-filters.php'
'/pomo/mo.php'
// Only Multisite
'/ms-blogs.php'
'/ms-settings.php'
Have you tried define('SHORTINIT', true);? I haven't tested it myself, but it seems to load very few aspects of WP core while retaining enough functionality, especially if all you want is to deal with the database.
本文标签: ajaxLoad minimum WordPress environment
版权声明:本文标题:ajax - Load minimum WordPress environment 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/questions/1749233179a2336837.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论