it-swarm.com.de

Welcher Aktionshaken soll für die Funktion verwendet werden?

Ich habe eine benutzerdefinierte Kategorie-Vorlage erstellt, um die untergeordneten Kategorien der aktuellen Kategorie anstelle von Beiträgen anzuzeigen. Untergeordnete Kategorien werden über eine benutzerdefinierte Miniaturansicht, einen Titel und eine Kategoriebeschreibung angezeigt.

Ich habe eine Funktion zum Trimmen der Kategoriebeschreibung auf eine vordefinierte Anzahl von Zeichen hinzugefügt, bin mir jedoch nicht sicher, welchen Aktions-Hook ich verwenden soll.

Hier ist die Funktion:

function trim_text($input, $length, $ellipses = true, $strip_html = true) {
    //strip tags, if desired
    if ($strip_html) {
        $input = strip_tags($input);
    }

    //no need to trim, already shorter than trim length
    if (strlen($input) <= $length) {
        return $input;
    }

    //find last space within length
    $last_space = strrpos(substr($input, 0, $length), ' ');
    $trimmed_text = substr($input, 0, $last_space);

    //add ellipses (...)
    if ($ellipses) {
        $trimmed_text .= '...';
    }

    return $trimmed_text;
}
1
jrcollins

Sie brauchen keine Aktion, sondern einen Filter, weil Sie mit dem Ergebnis einer Funktion etwas anfangen wollen. Der Filter heißt vorhersehbar category_description Auf diese Weise (habe es aber nicht getestet):

function wpse236947_trim_category_desc ( $desc, $cat_id ) {
    // do your thing
    return $desc;
}
add_filter( 'category_description', 'wpse236947_trim_category_desc' );
1
cjbj

Als ich die Frage stellte, war mir die wp_trim_words () -Funktion nicht bekannt, die genau das macht, was ich will. Nachdem ich die benutzerdefinierte Funktion aus meiner Datei functions.php entfernt hatte, musste ich meiner benutzerdefinierten Kategorieschablone nur noch <?php echo wp_trim_words( $child->description, 15, '...' ); ?> hinzufügen.

1
jrcollins