最小的WordPress负载只需`get_option`即可工作(因为AJAX...)

时间:2013-06-23 作者:laggingreflex

在插件中,我使用ajaxget_option() 因为整个wp都被加载了,所以这需要更长的时间。

我该如何设置,使它(我的ajax)只加载所需的内容?(get_option())

2 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

如果你正在构建一些供公众消费的东西(插件、主题等),请使用admin-ajax.php like you should 因为这是一种合适且被接受的做事方式,并为最终用户提供了所需的权力,如果他们愿意的话,他们可以更改和修改事情。

除此之外,您最好使用SHORTINIT 常数在自定义php文件中定义它,然后要求wp-load.php 做你需要做的事。SHORTINIT 阻止加载大部分WordPress核心。

<?php
define(\'SHORTINIT\', true);
require \'/path/to/wp-load.php\';
// you\'ll have the basic API here, including `get_option`. Do stuff.
如果在WP核心之外执行此操作,则必须猜测wp-load.php 也许你不会有ABSPATH 康坦特会指引你。除非你完全控制系统,否则这是一个冒险的赌注。换句话说,如果这是一种习惯,而不是公开发布的东西,那就去做吧。否则,请使用admin-ajax.php.

SO网友:T.Todua

另一种方法是将此代码添加到functions.php (或在插件中),无需require \'/path/to/wp-load.php\'... 但它不会像SHORTINIT :

// EXAMPLE
function MyFuncion(){
    if (isset($_POST[\'mynamee\'])) { echo get_option(\'my_nm\');}
}

//===================Then====================
//1) Execute directly
MyFunction();
//========OR=========
//2) Hook into the EARLIEST ACTION:  
add_action(\'muplugins_loaded\', \'MyFunction\',1);
别忘了保护和过滤黑客的请求!!!

结束

相关推荐

通过admin-ajax将函数php中的PHP脚本加载到div...结果为0,而不是所需的内容

我想用手风琴菜单http://wordpress.org/plugins/jquery-vertical-accordion-menu/ 通过基于页面模板加载不同菜单的功能。更重要的是,我希望将该元素划分为一个轴。下面是函数中的所有脚本。php:function get_left_menu() { if (is_page_template(\'page-akademia-biznesu.php\')) { echo do_shortcode(\'[dcwp-jquery-accor