web-dev-qa-db-fra.com

Comment trouver un identifiant de publication à l'aide de post_excerpt?

Je sais comment trouver post_excerpt à l'aide de l'ID de poste, mais est-il possible de trouver un ID de poste à l'aide d'un extrait? Chaque fois que je cherche ceci, tout ce qui se pose, c'est comment trouver le post_excerpt à partir de l'ID. Merci pour toute aide.

1
SoloCrowd

Vous pouvez obtenir l'ID de l'article à partir de l'extrait, mais pour autant que je sache, WP_Query ne le supporte pas (très bien), vous devez donc écrire une requête WPDB personnalisée.

function get_post_id_by_excerpt($excerpt) {
    global $wpdb;
    $result = $wpdb->get_row( 
        $wpdb->prepare("SELECT ID FROM {$wpdb->prefix}posts WHERE post_excerpt LIKE %s", $excerpt) 
    );
    return $result;
}

Pour que cela fonctionne, vous devez transmettre l'extrait exact (y compris HTML) à la fonction.

1
kero

Via les API? Non, l'extrait n'est pas une option dans WP_Query qui alimente toutes les autres fonctions. Voir ici pour une liste complète des options

Si vous effectuez une recherche, cela tentera indirectement, mais le contenu et le titre de la publication seront également recherchés.

Pour faire ceci explicitement, vous aurez besoin de faire une requête SQL brute, via $wpdb, et gardez à l'esprit que ce ne sera probablement pas une requête rapide, je vous le déconseille

0
Tom J Nowell

99% du temps, ce n'est pas possible, du moins pas sans un algorithme ridiculement lent.

La raison en est que les extraits peuvent tous deux être automatiquement générés et/ou désinfectés, ce qui fait que l’extrait obtenu ne correspond pas exactement au post_content ni au post_excerpt.

Les chances d'obtenir un résultat correct avec un extrait manuel sont probablement beaucoup plus grandes qu'avec un extrait automatique, mais les gens les ajoutent relativement rarement.

0
Mark Kaplun