Dans un plugin, j'utilise ajax pour get_option()
qui prend beaucoup plus de temps que nécessaire car tout le fichier wp est chargé.
Comment puis-je configurer les choses de sorte que (mon ajax) ne charge que ce qui est nécessaire? (get_option()
)
Si vous construisez quelque chose pour la consommation publique (un plugin, un thème, etc.), utilisez admin-ajax.php
comme vous devriez car c’est la manière appropriée et acceptée de faire des choses et donne à vos utilisateurs finaux le pouvoir dont ils ont besoin pour changer et modifier les choses s'ils le souhaitent.
Au-delà de cela, le mieux que vous puissiez pouvoir faire est d’utiliser la constante SHORTINIT
. Définissez-le dans un fichier php personnalisé, puis besoin de wp-load.php
et faites ce que vous devez faire. SHORTINIT
empêche le chargement de la majeure partie du noyau WordPress.
<?php
define('SHORTINIT', true);
require '/path/to/wp-load.php';
// you'll have the basic API here, including `get_option`. Do stuff.
Si vous faites cela en dehors du noyau WP, vous devrez deviner où wp-load.php
peut être - vous n'aurez pas de constante ABSPATH
pour vous guider . C'est un pari risqué à moins que vous ne maîtrisiez totalement le système. En d’autres termes, s’il s’agit d’une coutume et non d’une publication publique, foncez. Sinon, utilisez admin-ajax.php
.
Une autre méthode consiste à ajouter ce code dans functions.php
(ou dans le plugin), sans avoir besoin de require '/path/to/wp-load.php'
... mais ce ne sera pas aussi rapide que 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);
p.s N'OUBLIEZ JAMAIS DE GARDER ET FILTRER LES DEMANDES D'HACKING !!!