6
votes

Pourquoi s'applique_filter ("the_content") émet quelque chose?

J'ai essayé tellement de combinaisons de PHP pour obtenir WordPress pour générer $ post-> post_content comme texte formaté (par opposition à la mise en forme brute que echo $ => post_content me donne. Ce La combinaison semble être la plus prometteuse, mais elle ne suscite rien. Des idées?

(C'est cette ligne: post_content); > ) xxx


1 commentaires

Je ne sais pas pourquoi vous n'obtenez aucune sortie, le même code exact fonctionne bien sur mon installation WP.


7 Réponses :


0
votes

Vous devez echo les résultats du apply_filters appel: xxx

ou, comme vous l'avez codé: < / p> xxx


2 commentaires

merde! Je n'ai pas remarqué que vous l'avez déjà fait dans votre exemple original. Si vous venez de ECHO $ ​​S- S-> POST_Content; Obtenez-vous la mise en forme brute du message?


OUI-ECHO $ ​​S-> POST_Content me donne la mise en forme première, mais faisant écho au filtre.



0
votes

Désolé si cela est trop basique, mais cela pourrait vous aider si vous avez fait écho au contenu:

<?php
$content = apply_filters('the_content', $s->post_content);
echo $content;
?>


0 commentaires

0
votes

Comment ajoutez-vous le filtre? Vous pouvez utiliser add_filter qui spécifie une fonction qui recevra $ de contenu. Vous pouvez effectuer tout filtrage que vous avez besoin via cette fonction.

http://codex.wordpress.org/plugin_api#create_a_filter_function


3 commentaires

Cela ressemble à une étape dans la bonne direction ... Je n'aime pas le filtre nulle part, simplement l'appliquer. Comment puis-je l'ajouter dans ce cas? Merci!


Vous devriez être capable de simplement l'ajouter via les fonctions de votre thème.PHP


Je viens de regarder votre message original et vous pouvez également utiliser SETUP_POSTDATA ($ S) à l'intérieur de vous pour la boucle et utiliser the_content (). Vous pouvez voir que c'est utilisé ici - Codex.WordPress.org/template_tags/...



0
votes

hmm .. Pour une raison quelconque, je peux obtenir du contenu à afficher lorsque j'ai enlevé la ligne supérieure et la ligne de fin.

Peut-être que le problème est l'appel de Query_posts. Et pas l'appel Apply_Filters ().

Je peux basculer en mode d'affichage selon que j'utilise ou non, apply_filters () ou non. Ce que je crois, c'est ce que vous êtes après.


3 commentaires

faire juste post_content; ?> Donne-moi un contenu non formaté (les balises P et toutes les formatage sont dénudées) afin que j'essaie d'utiliser "The_Content_ filtre pour récupérer du texte riche.


Désolé, je n'étais pas clair. J'ai supprimé l'appel à Query_posts () .. et cela a résolu le problème pour moi. J'ai pu utiliser the_content_filter avec le résultat souhaité après cela. C'est pourquoi je voulais voir si vous pouvez obtenir les mêmes résultats que je peux en modifiant ou en supprimant l'appel à Query_posts ().


J'ai initialement pensé que Query_posts pourrait être le problème. Si vous le supprimez, cela résout le problème, je pense que l'explication la plus probable est que le global $ est rempli de données «Autres» et l'un des filtres accrochés est de lire le contenu de la variable globale. WordPress semble faire cette amende, il s'agit probablement probablement d'un fichier plugin / fonctions inscrit mal écrit au défaillance. La lecture de la DB provoque toujours des problèmes. Utilisez l'API de WordPress - il est plus facile et il vous assurera que les globaux nécessaires sont remplis et les filtres / actions nécessaires sont tirés.



13
votes

Aussi loin que je sache, la fonction qui applique la principale "formatage" au corps du contenu est wpautop ( ) . Cette fonction doit être accrochée dans 'The_Content' par WordPress. La fonction fait des choses gênantes (comme le code d'incorporation en désaccordé) et il y a beaucoup de plugins qui le décrocheront de la pile de filtres. Essayez de remplacer votre ligne: xxx

avec xxx

Si cela aide alors que vous avez probablement un problème de la WPautop se dégage quelque part.


1 commentaires

En vérifiant tous les Add_Filter ('the_Content ", ... CODE, a trouvé un fichier plugin ancien" WordPress associé "qui utilise un code de syntaxe incorrect. Par cocher le site Web du plugin, il suffit de prendre en charge jusqu'à 4. X WordPress, maintenant le site mis à jour sur 5.x. Désactivez le plugin résolu le problème. Une chose étrange est qu'il n'y a pas d'erreur trouvée dans le journal du serveur!



1
votes

MAN86,

Je vois que vous obtenez les données de poste via $ wpdb-> get_results (). La chose à ce sujet est que les données sont retournées brutes, vous devez donc "la préparer" avant de pouvoir utiliser des fonctions postales communes telles que The_Content () (qui retournera le contenu déjà formaté, comme si vous l'aimeriez ).

Que diriez-vous d'essayer ceci (voir les commentaires sur le code): xxx

référence: http://codex.wordpress.org/class_reference/wpdb#examples_5 (" Obtenez toutes les informations sur les brouillons par utilisateur 5 ")

Merci, j'espère que cela aide!

vq.


0 commentaires

3
votes

J'ai eu le même problème. Il s'est avéré qu'il y avait une fonction dans mon thème, qui a également filtré le contenu , mais y a eu un bogue, ce qui entraîne le filtre de retourner une chaîne vide.

Vérifiez votre thème et vos plugins pour des fonctions qui filtrent the_content . Dans le texte sublime 2, par exemple, vous pouvez faire une "recherche dans des fichiers" rapide avec ⌘ / ctrl + + f pour trouver des coupables possibles.


0 commentaires