web-dev-qa-db-fra.com

Filtrer uniquement le texte dans le_contenu

J'ai essayé de filtrer uniquement le texte dans get_the_content pour ma page d'accueil, mais cela inclut également mon shortcode, car dans cette première page, la première ligne de la carte google map, la zone de texte de la deuxième ligne, j'utilise un créateur de page visuel composer.

Mon code

$content = get_the_content();
$content = apply_filters('the_content', substr(get_the_content(), 0, 60) );
$content = str_replace(']]>', ']]>', $content);
echo $content

Mon résultat

[vc_row] [vc_column] [vc_gmaps link = ”# E-8_JTNDaWZyYW1lJTIwc3Jj

capture d'écran

 enter image description here 

1
Mohamed Rihan

Sur la base de votre commentaire expliquant clairement ce que vous souhaitez atteindre, il semble que vous souhaitiez afficher les 60 premiers caractères de votre message sans inclure les codes abrégés .

Pour ce faire, vous pouvez utiliser la fonction strip_shortcodes(). Réécrit avec cela, votre code ressemblera à ceci:

$content = strip_shortcodes(get_the_content());
$content = apply_filters('the_content', substr($content, 0, 60) );
$content = str_replace(']]>', ']]>', $content);
echo $content;

Nous ne faisons qu'exécuter le contenu (de get_the_content()) à strip_shortcodes() avant d'appliquer les filtres Wordpress sur les 60 premiers caractères.

Selon ce que vous voulez réaliser et si vous comptez sur un autre plugin pour modifier ce contenu à votre place, vous pouvez également ignorer l'appel apply_filters(). Dans ce cas, il vous suffit de définir $content sur la substr() que vous voulez avoir.

1
Tim Malone