wake-up-neo.com

Entfernen des Shortcodes von der benutzerdefinierten Auszugsfunktion

Ich benutze die folgende Funktion, um einen benutzerdefinierten Auszug für meine Homepage und Kategorieseiten zu erstellen, damit ich ihn anhand der Anzahl der Zeichen erstellen und einen benutzerdefinierten "read more" -Aufruf erhalten kann. Ich habe jedoch einen Untertitel-Shortcode in meinem Auszug.

Beispiel:

[caption id = "attachment_4656" align = "aligncenter" width = "450"] Knusprige Gemüsetacos [/ caption] Fühlen Sie sich manchmal überfordert, wenn Sie sich für ein Abendessen entscheiden? Was ich aus meinen Jahren als Experte für die Planung von Familienessen gelernt habe ... lesen Sie weiter

Ich habe versucht, Zeile 5 hinzuzufügen, um den tatsächlichen Shortcode-Code zu entfernen, aber er funktioniert nicht.

Bin ich auf dem richtigen Weg? Ich würde es vorziehen, wenn die Kurzwahlen überhaupt nicht angezeigt werden und ich die Funktion verwendet habe, die ich im Internet gesehen habe, aber sie funktioniert nicht (ich vermute, weil ich eine benutzerdefinierte Auszugsfunktion verwende). Möchte mir bitte jemand helfen?

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;
}

Die fünfte Zeile, die ich zu konvertieren versuchte:

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

TIA!

1

Verwenden Sie keine benutzerdefinierte Funktion. Sie sollten die Haken verwenden. Sie müssen keine Shortcodes entfernen, WordPress erledigt das automatisch für Sie. Verwenden Sie einfach so etwas

// 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
}

REGEL DES DAUMENS

Erstellen Sie niemals eine benutzerdefinierte Funktion für etwas, für das eine Hook- oder Core-Funktion verfügbar ist

2
Mridul Aggarwal

Verwenden Sie strip_shortcodes( $excerpt ), um… nun… Shortcodes zu entfernen. :) Tun Sie dies frühzeitig, bevor Sie strip_tags() anrufen.

<?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