J'essaie d'ajouter un style en ligne à mes balises de paragraphe qui sont sorties à l'aide de the_content();
J'ai essayé de remplacer la chaîne, voir question je l'ai fait plus tôt. Mais ce ne sera pas le cas parce que le_contenu l'aura renvoyé. Si je renvoie le contenu en utilisant get_the_content();
, les balises de paragraphe ne seront pas affichées.
Est-ce que quelqu'un peut m'aider avec ça?
Merci à @papirtiger
Entré avec cette solution juste pour l'appliquer à une fonction de contenu spécifique.
Je n'ai pas expliqué dans ma question que je n'avais besoin que de travailler sur un contenu spécifique, mais je pense que les solutions ci-dessus sont globales et que ce sont toutes deux d'excellentes solutions.
<?php
$phrase = get_the_content();
// This is where wordpress filters the content text and adds paragraphs
$phrase = apply_filters('the_content', $phrase);
$replace = '<p style="text-align: left; font-family: Georgia, Times, serif; font-size: 14px; line-height: 22px; color: #1b3d52; font-weight: normal; margin: 15px 0px; font-style: italic;">';
echo str_replace('<p>', $replace, $phrase);
?>
Vous pouvez utiliser votre chaîne personnalisée à remplacer dans une fonction personnalisée "the_content".
function custom_the_content($more_link_text = null, $stripteaser = false) {
$content = get_the_content($more_link_text, $stripteaser);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
// apply you own string replace here
echo $content;
}
Je pourrais être en retard pour celui-ci, mais utilisez ceci:
ob_start();
the_content();
$content = ob_get_clean();
Ensuite, appelez $ content où vous voulez.
Fondamentalement, the_content est conservé en mémoire (une autre dimension temporelle) et aucune donnée n'est extraite jusqu'à ce que ob_get_clean()
soit appelé. Ceci dit, the_content()
conserve le format, contrairement à get_the_content()
. C'est pourquoi beaucoup de réponses essaient de filtrer get_the_content()
, ce qui est assez gênant.
Utilisez le filtre et les actions:
/**
* Plugin Name: Your_awsome_inlinestyle
* Plugin URI: http://wordpress.stackexchange.com/questions/72681/how-to-add-an-inline-style-to-the-p-tag-outputted-in-the-content-using-php
* Description: See link to plugin
* Version: 0.1
* Author: Ralf Albert
* Author URI: http://yoda.neun12.de
* Text Domain:
* Domain Path:
* Network:
* License: GPLv3
*/
add_action( 'plugins_loaded', 'init_inlinestyler', 10, 0 );
function init_inlinestyler(){
add_filter( 'the_content', 'add_inlinestyle_to_p_tag', 10, 1 );
}
function add_inlinestyle_to_p_tag( $content = null ){
if( null === $content )
return $content;
return str_replace( '<p>', '<p style="color:red">', $content );
}
Mettre à jour
Si vous souhaitez utiliser un filtre uniquement pour un travail spécial au lieu d'un filtrage global, ajoutez le filtre juste à l'endroit où vous en avez besoin et supprimez-le à nouveau.
Commencez par définir votre callback-filter:
function insert_inline_style( $content = null ){ ... }
Placez cette fonction où vous voulez. Règle générale: si vous souhaitez réutiliser le rappel, placez-le dans un fichier central tel que functions.php. Si le rappel concerne uniquement un travail (très) spécial, placez-le dans le même fichier que celui qui effectue le travail.
Maintenant, nous devons ajouter le filtre, donc le résultat de the_content
sera filtré:
<?php
// add the filter
add_filter( 'the_content', 'insert_inline_style', 10, 1 );
// output the post content
the_content();
// remove the filter if it is not longer needed
remove_filter( 'the_content', 'insert_inline_style' );
Ainsi, vous n'avez pas besoin de manipuler get_the_content()
et pouvez facilement réutiliser le rappel si nécessaire.