it-swarm.com.de

Links in Auszügen anzeigen?

Ich habe ein Problem mit the_excerpt und kann die Antwort nirgendwo finden ... Ich möchte nur zulassen, dass Links anklickbar sind, wenn sie über the_excerpt angezeigt werden! Dafür muss es eine Funktion geben, anstatt sich auf ein Plugin zu verlassen. Aber ich kann es nicht finden und die erweiterten Auszugs-Plugins sind so komplex, dass ich das kleine Snippet, das diese Funktion ermöglicht, nicht finden kann.

3
AndrettiMilas

Sie können das Skript verwenden, das ich hier gefunden habe: http://aaronrussell.co.uk/legacy/improving-wordpress-the_excerpt/

Ich habe es geändert, um Links im Auszug anzuzeigen, und einige der anderen Funktionen entfernt:

<?php
function keep_my_links($text) {
  global $post;
if ( '' == $text ) {
    $text = get_the_content('');
    $text = apply_filters('the_content', $text);
    $text = str_replace('\]\]\>', ']]&gt;', $text);
    $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
    $text = strip_tags($text, '<a>');
  }
  return $text;
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'keep_my_links');
?>

Der Teil, der dies behebt, ist $text = strip_tags($text, '<a>');. zusammen mit remove_filter('get_the_excerpt', 'wp_trim_excerpt');

8
Jeremy Jared

Sie können das folgende Plugin verwenden, um Links und andere HTML-Tags in den Auszügen zuzulassen

Plugin: Zeige Links in WordPress Auszügen

Ich habe keine Zugehörigkeit zum Plugin

1
user3162185

Der Code ermöglicht im Grunde eine Liste von durch Kommas getrennten HTML-Tags in Ihren Auszügen, die normalerweise von WordPress entfernt werden. Auf Genesis getestet und funktioniert.

 add_filter( 'get_the_content_limit_allowedtags', 'get_the_content_limit_custom_allowedtags' );

function get_the_content_limit_custom_allowedtags() {
// Add custom tags to this string
return '<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>'; 
}

Quelle http://daan.kortenba.ch/add-tags-to-genesis-content-limit-in-content-archives/

1
Brad Dalton

WordPress entfernt Tags in wp_trim_words(), das von get_the_excerpt() aufgerufen wird. Deshalb müssen wir 'wp_trim_words' filtern und diese Funktion mit einer Änderung kopieren: wp_strip_all_tags() durch strip_tags() ersetzen.

Wir möchten nicht, dass andere Funktionen, auf denen wp_trim_words ausgeführt wird, geändert werden. Deshalb fügen wir unseren Filter hinzu, während get_the_excerpt() ausgeführt wird, und entfernen ihn, wenn wir fertig sind.

// Allow links in excerpts
function sg_trim_words( $text, $num_words, $more, $original_text ) {
    $text = strip_tags( $original_text, '' );
    // @See wp_trim_words in wp-includes/formatting.php
    if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
        $text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' );
        preg_match_all( '/./u', $text, $words_array );
        $words_array = array_slice( $words_array[0], 0, $num_words + 1 );
        $sep = '';
    } else {
        $words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
        $sep = ' ';
    }
    if ( count( $words_array ) > $num_words ) {
        array_pop( $words_array );
        $text = implode( $sep, $words_array );
        $text = $text . $more;
    } else {
        $text = implode( $sep, $words_array );
    }
    // Remove self so we don't affect other functions that use wp_trim_words
    remove_filter( 'wp_trim_words', 'sg_trim_words' );
    return $text;
}
// Be sneaky: add our wp_trim_words filter during excerpt_more filter, which is called immediately prior
function sg_add_trim_words_filter( $excerpt_length ) {
    add_filter( 'wp_trim_words', 'sg_trim_words', 10, 4 );
    return $excerpt_length;
}
add_filter( 'excerpt_more', 'sg_add_trim_words_filter', 1 );

Ich habe this Gist geschrieben, nachdem ich andere vorgeschlagene Methoden überprüft hatte, weil ich denke, dass dies eine zielgerichtetere Lösung ist. Der Inhalt wird in Zukunft aktualisiert.

0
Greg Perham