web-dev-qa-db-fra.com

Suppression du shortcode de la fonction d’extrait personnalisé

J'utilise la fonction suivante pour créer un extrait personnalisé pour ma page d'accueil et mes pages de catégories afin que je puisse le faire par nombre de caractères et avoir un "lire plus" personnalisé. Cependant, j'ai des légendes shortcode apparaissant dans mon extrait.

Exemple:

[caption id = "attachment_4656" align = "aligncenter" width = "450"] Tacos croustillants aux légumes [/ caption] Vous sentez-vous parfois dépassé lorsque vous essayez de décider quoi préparer pour le dîner? Ce que j’ai appris de mes années d’expert en planification de repas en famille ... continue reading

J'ai essayé d'ajouter la ligne 5 pour supprimer le code abrégé mais cela ne fonctionne pas.

Suis-je sur la bonne voie? Je préférerais que les codes abrégés ne s'affichent pas du tout et j'ai utilisé la fonction que j'ai vue sur le réseau, mais cela ne fonctionne pas (je suppose que j'utilise une fonction d'extrait personnalisé). Quelqu'un veut m'aider, s'il vous plaît?

function get_excerpt($count){
   $permalink = get_permalink($post->ID);
   $excerpt = get_the_content();
   $excerpt = strip_tags($excerpt);
   $excerpt = str_replace(']]>', ']]>', $excerpt);
   $excerpt = substr($excerpt, 0, $count);
   $excerpt = substr($excerpt, 0, strripos($excerpt, " "));
   $excerpt = $excerpt.' ... <a href="'.$permalink.'" class="read-more">continue reading <i class="foundicon-right-arrow"></i></a>';
   return $excerpt;
}

La cinquième ligne, j'ai essayé de convertir à partir de cela:

$content = str_replace(']]>', ']]>', $content);

TIA!

1
Justice Is Cheap

Ne pas utiliser une fonction personnalisée. Vous devriez utiliser les crochets. Vous n'avez pas besoin de supprimer les codes abrégés, Wordpress le fait automatiquement, il suffit d'utiliser quelque chose comme ça

// setting higher priority so that wordpress default filter have already applied
add_filter('the_excerpt', 'custom_excerpt_filter', 11);
function custom_excerpt_filter($excerpt) {
    // apply your logic of read more link here
    return $excerpt . 'Custom Read More Text';
}

add_filter('excerpt_length', 'custom_excerpt_length');
function custom_excerpt_length($length) {
    return 30; // replace this with the character count you want
}

RÈGLE DE POUCE

Jamais jamais créer une fonction personnalisée pour quelque chose il y a une fonction de crochet ou de base disponible

2
Mridul Aggarwal

Utilisez strip_shortcodes( $excerpt ) pour… bien… supprimer les codes abrégés. :) Faites-le tôt, avant d'appeler strip_tags().

<?php
/** Plugin Name: (#69848) Strip shortcodes from the excerpt */
function wpse69848_noshortcode_excerpt( $excerpt )
{
    return strip_shortcodes( $excerpt );
}
add_filter( 'the_excerpt', 'wpse69848_noshortcode_excerpt' );
2
fuxia