2017-05-18 1 views
0

In Kategorie-Archiven benutze ich the_content mehr lesen, um Bild mit einem Text anzuzeigen. Ich möchte, dass dieses Bild mit einem Beitrag verknüpft wird. Ich habe Probleme damit es funktioniert, weil meine ersten Bilder in Posts entweder bereits mit externen Seiten verlinken oder nicht.Wie man das erste Bild herstellt Link zu Posten in Kategorien

Ich kenne zwei Möglichkeiten, es zu tun.
1. Ich lösche das erste Bild von the_content und benutze dann the_post_thumbnail().

function remove_first_image ($content) { 
$content = preg_replace("/<img[^>]\>/i", "", $content, 1); 
} return $content; 
add_filter('the_content', 'remove_first_image'); 

Es funktioniert. Aber es streift nur das Bild ab. Ich habe viele Beiträge, die auch Links sind. Wie ändere ich diesen Code, damit das erste Bild mit einem Link gelöscht wird, wenn es bereits existiert? Ich habe versucht, das hinzuzufügen.

$content = preg_replace("/<a href[^>]\>/i", "", $content, 1); 

Aber es ist nicht gut genug. Es ist eine Linkverbindung. Wenn das Bild jedoch keinen Link hat, wird der nächste Link entfernt. Welches ist oft der Inhalt mehr Link. Ich habe versucht, eine href und img innerhalb einer preg_replace zu mischen, kann aber nicht funktionieren.

  1. Die zweite Option wäre einfach das Ändern/Hinzufügen eines href zum Bild. Für die ich diesen Code gefunden habe.

    $content = preg_replace("/<img[^>]+\>/i","", $content, 1);<br> 
    $old = '/(<img[^>]+\/>)/i';<br> 
    $new = '<a href="'.esc_url(get_permalink()).'" title="'.esc_attr(get_the_title()).'">$1</a>';<br> 
    $content = preg_replace($old, $new, $content, 1); 
    

Dieses ist genug gut. Aber hat das gleiche Problem wie die vorherige Methode. Weil meine Bilder beide mit einem href und ohne sind.

Können Sie mir dabei helfen? Auch welche Methode wäre besser zu verwenden. Das ist leichter.

+0

Sie möchten also den externen Link für die einzelne Seite anzeigen, aber den Link in der Kategorieansicht ändern? – RST

+0

Ja, genau. Ich möchte den_content Auszug nur ändern. – Recofa

Antwort

0

Ich schaffte es irgendwie, es zum Laufen zu bringen. Nicht sicher, ob das der richtige Weg ist. Hier ist der Code.

Verwandte Themen