So entfernen Sie den Link "Lesen Sie mehr" aus einem benutzerdefinierten Beitragsauszug


7

Gibt es eine Möglichkeit, eine Art pre_get_posts()Filter hinzuzufügen , um den Link "Lesen Sie mehr" zu entfernen, der am Ende von the_excerpt()nur für einen bestimmten benutzerdefinierten Beitragstyp angezeigt wird , den ich angegeben habe?

Wenn ja, kann mir bitte jemand mit dem Code helfen? Ich habe eine Weile daran gearbeitet, bin aber nirgendwo hingekommen. Jede Hilfe wäre sehr dankbar. Vielen Dank!


Wenn Sie eine schnelle und einfache Lösung suchen, können Sie immer nur Folgendes anzeigen: Keiner der Links read_more auf diesem bestimmten CPT
Jonathan

Danke, darüber habe ich nachgedacht. Ich würde es jedoch vorziehen, den Link nach Möglichkeit vollständig zu entfernen, damit Google diesen bestimmten Seiten nicht folgt und sie zwischenspeichert.
Evster

Die Antwort auf diese Frage ist themenspezifisch und nicht spezifisch für WordPress, da verschiedene Themen unterschiedlichen Code zum Hinzufügen des weiterführenden Links codex.wordpress.org/… enthalten
Brad Dalton

Antworten:


4

Geben Sie den folgenden Code ein functions.php, um "read more" für alle Beitragstypen außer anzuzeigen custom_post_type.

function excerpt_read_more_link($output) {
  global $post;
  if ($post->post_type != 'custom_post_type')
  {
    $output .= '<p><a href="'. get_permalink($post->ID) . '">read more</a></p>';  
  }
  return $output;
}
add_filter('the_excerpt', 'excerpt_read_more_link');


1

Eine einfache Lösung besteht darin, folgenden Code einzugeben style.css:

 a.read-more {
    display:none;
 }

Dies zielt <a class="read-more">


Sollte als die richtige Antwort markiert werden, da die Methode keinen Parameter zum Überschreiben bereitstellt.
sGambolati

0

Was ist damit? Grundsätzlich können Sie den Text anpassen, indem Sie der Datei functions.php eine Rückruffunktion hinzufügen. Ich denke jedoch, wenn Sie stattdessen nur ein Leerzeichen zurückgeben, sollte es dieses überschreiben und nichts anzeigen.

// Replaces the excerpt "more" text by a link
function new_excerpt_more($more) {
   global $post;
   return ' ';
}
add_filter('excerpt_more', 'new_excerpt_more');

Ich habe dies aus dem Wordpress-Kodex erhalten

Bearbeiten:

Dies ist nicht getestet, aber was ist, wenn Sie dies tun:

// Replaces the excerpt "more" text by a link
function new_excerpt_more($more) {
   global $post;
   if ($post->post_type == 'your-cpt')
   {
      return "&nbsp;";
   }
}
add_filter('excerpt_more', 'new_excerpt_more');

Um es noch einmal zu wiederholen, ich habe dies nicht getestet, kann Sie aber auf den richtigen Weg bringen (dh var_dump ($ post), um zu sehen, wie Sie es innerhalb der Funktion new_excerpt_more nach Ihrem Willen biegen können.


Ich denke, Sie sind auf dem richtigen Weg, aber das Einfügen dieses genauen Codes in meine Datei functions.php bricht tatsächlich die gesamte Site. Außerdem benötige ich die Funktion, um nur die Beiträge aus dem benutzerdefinierten Beitragstyp "Mitarbeiter" abzurufen.
Evster

Danke für die Hilfe! Es gibt immer noch einen Fehler in der Syntax, der die gesamte Site herunterfährt und eine leere Seite lädt. Ich werde sehen, ob ich es herausfinden kann. Ihre Logik dazu scheint vernünftig.
Evster

Sie müssen das $moreEnde der Funktion zurückgeben, da sonst bei allen anderen Beitragstypen mehr Tags / Text fehlen.
Sisir
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.