J'utilise le code suivant pour générer un flux JSON. Je dois extraire l'extrait des publications, mais lorsque j'exécute get_the_excerpt (), il faut 28 secondes (oui SECONDES!) Pour s'exécuter sur mon serveur local, contre 599 millisecondes lorsque je remplace get_the_excerpt () par "hi".
Quelqu'un a-t-il une idée du pourquoi cela prend si longtemps et de ce que je peux faire pour le charger plus rapidement? C'est sur mon serveur Web local sur l'ordinateur que j'utilise, ce n'est donc pas à cause d'un problème de réseau.
$json = array();
while ( have_posts() ) {
the_post();
$yo = array('title' => get_the_title(), 'excerpt' => get_the_excerpt());
}
$json[] = $yo;
$json = json_encode($json);
Le problème sera probablement un rappel (très lent) attaché à votre fonction get_the_excerpt()
.
Pour inspecter les rappels attachés, il suffit d'inspecter le global:
// Best hooked to `shutdown`
echo '<pre>'.var_export( $GLOBALS['wp_filters']['get_the_excerpt'], true ).'</pre>';
Ensuite, débarrassez-vous de tous ces rappels.
Si vous souhaitez accéder directement à l'objet POST, vous pouvez créer un $post
global et accéder directement à l'objet de publication utilisé.
while( have_posts() ){
the_post();
global $post;
echo $post->post_excerpt;
}
Si vous rencontrez des problèmes en raison de filtres ou de tout autre élément du système, cela devrait résoudre le problème.