Spielerei mit dem more tag von WordPress

 
WordPress-Templates Funktionen

André hatte eine Frage per Email:“ Und zwar würde ich gerne im Post selbst alles was über dem „More Tag“ steht nicht anzeigen. Hättest Du dafür eine Lösung im Kopf?“

Ja eine Lösung habe ich dafür im Kopf, doch vorher kurz eine Erklärung zum More Tag.

Nutzt man beim Schreiben eines Artikels entweder dieses Symbol More Button oder den more Button bei den Quicktags, dann teilt man den Artikel dort ab wo man selber mag.

More Tag in die index.php

In die index.php des verwendeten Themes schreibt man dann so:

<?php the_content('Weiterlesen..'); ?>

Oder auch so wie hier auf Texto.de genutzt:

<?php the_content("&raquo;&raquo; " . the_title('', '', false)); ?>

Dies ergibt einen Anker zur geteilten Textstelle

Im Normalfall ergibt dies einen Anker in der URL zum Artikel.

Klickst du auf den „weiterlesen“ Link mit Anker landest Du bei der Textstelle, die man vorher als Trennung selber entschieden hat und oberhalb ist alles was vorher auf der Startseite zu lesen war.

Hier auf der Texto.de habe ich diesen HTML Anker „verboten“, daher kannst du es hier bei mir nicht kontrollieren.

Damit arbeiten kannst du aber dennoch.

Alles was vor dem More Tag kommt nicht anzeigen

Single.php mit einem Texteditor öffnen, dann

<?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>

Jetzt alles was Du anzeigen lassen magst. Posttitel, Uhrzeit, Autor und alles andere, dann kommt normalerweise nur das:

<?php the_content();?>

Und dies muss man jetzt so abändern:

<?php the_content('', TRUE); ?>    

Fertig!

Ab jetzt ist in der Einzelansicht eines Artikels nur mehr der Text nach dem More-Tag zu lesen.

Irgendwas zwischen Text vor dem More-Tag und Text nach dem More-Tag einfügen:

Mancher mag diese Textteilung durch den More-Tag vielleicht auch nutzen , um was dazwischen anzuzeigen:
Die meisten mögen dies, um dazwischen Werbung anzuzeigen ;)

Wieder single.php mit einem Texteditor öffnen:

<?php if (have_posts()) : ?>
       <?php while (have_posts()) : the_post(); ?>

alles was Du sonst magst

<?php $more = 0;  
        the_content(''); ?>
    <?php endwhile; ?>   
       
      das was dazwischen kommen sollte 
       
       <?php while (have_posts()) : the_post(); ?>
               <?php the_content('', TRUE); ?>    
<?php endwhile; ?> 

und weiter im Loop der single.php

Fertig!

Viel Spaß mit den More-Tag Spielereien wünsch ich nicht nur André, sondern Euch allen. ;)
36

36 Beiträge zu “Spielerei mit dem more tag von WordPress

  1. Kommentar Autor
    Schalkie
    Kommentar

    Vielen Dank dafür, hat mir sehr geholfen!

    Liebe Grüße
    André

  2. Kommentar Autor
    Michael Karl
    Kommentar

    Ich wäre nicht auf die Idee gekommen, das more-Tag so zu verändern.
    Werds mir trotzdem mal merken. ;-)

  3. Kommentar Autor
    bloggen
    Kommentar

    Genau das, wonach ich gesucht habe. Danke.

  4. Kommentar Autor
    Maik
    Kommentar

    Hm fast das was ich zur Zeit suche :). Aber ich würde gerne den ersten Teil (also alles was vor more steht) mit Ajax laden, wenn man auf der Single-Page ist :). Hast du da vllt auch noch eine Idee :)

  5. Kommentar Autor
    Monika
    Kommentar

    oben steht wie man den Teil anzeigt, der nach dem More Link kommt jetzt zeige ich Dir wie man auf der Singelansicht den Teil anzeigt der bis zum More Link geht:

    <?php $more = 0; ?> 
           <?php the_content(''); ?>
    

    Den Sinn dieses mit Ajax zu laden erschließt sich mir nicht so ganz, weil Du Dir damit nichts *ersparst* ;)

    lg

  6. Kommentar Autor
    Maik
    Kommentar

    ist ein experiment :) aber so einfach wie du es geschrieben hast geht es leider auch nicht da an die ajaxseite nur die postID übergeben wird.
    in der ajaxseite muss auf jedenfall folgendes gemacht werden um wieder auf den aktuellen post zugreifen zu können.

    $post =  get_post($_GET['id']);
    $content = $post->post_content;
    
  7. Kommentar Autor
    Monika
    Kommentar

    Hi Maik
    ich habe ja auch keine Hilfe für Ajax gepostet ;)

    Danke für den Tipp, vielleicht brauchts auch noch wer anderer

    lg Dir

  8. Kommentar Autor
    Monika
    Kommentar

    ali dann ist meist irgendwas zu breit, aber ohne Link brauche ich meine Glaskugeln. Doch die nehmen alles wortwörtlich, zB:FREI -tag und arbeiten daher heute nicht. :(

    lg

  9. Kommentar Autor
    ali
    Kommentar

    Danke es hat mir geholfen, nun habe ich ein anderes problem.Das Problem ist das sich der Navigation von der rechten Seite sich ganz nach unten verschiebt.

  10. Kommentar Autor
    ali
    Kommentar

    Ich hatte die Anleitung mit xampp auf meinem Rechner ausprobiert gehabt deshalb konnte ich keinen Link vorweisen.Ich hatte zuvor beim css bischen rumgebastelt gehabt warscheinlich ist die verschiebung dadurch entstanden.
    Die anleitung habe ich heute bei funpic ausprobiert ohne probleme.

  11. Kommentar Autor
    Paul
    Kommentar

    Vielen Danke, kann ich gerade gut einbauen.

  12. Kommentar Autor
    Monika
    Kommentar

    Paul wo?

    tät ich gerne sehen, in Deinem verlinkten Blog ist ja kein *weiterlesen* Link auf der Startseite

    lg

  13. Kommentar Autor
    Paul
    Kommentar

    Komisch is nur bei mir nur, dass immer wenn man auf den more-link klickt, der Browser nach ganz unten scrollt (sprich man muss wieder hoch scrollen um den Artikel komplett lesen zu können. Was hab ich da falsch gemacht bzw. mit eingebaut?

  14. Kommentar Autor
    Paul
    Kommentar

    Arg peinlich,

    hab den Fehler (bau wo anders das neue Design, bzw. ein fertiges um) Ich wusste nicht das der more Befehel mit einer ID bestückt ist. Wenn man also auf den More-button klickt, stellt sich der Browser so ein, dass er alles vorallem zeigt was nach dem More erscheint. ich wollte aber nun, dass die Seite ganz normal geladen wird, also zum Header hin.

    Das geht aber nur wenn man die wp-includes/post-template.php umarbeitet, was ich aber net will.

  15. Kommentar Autor
    Paul
    Kommentar

    Eben, hab ich auch nach langem Suchen gefunden, hoffe das dies dann auch für die neuen Versionen geht:

    Hab noch ein Problem, wollte deine More Technik für Werbezwekche umbauen

    Code-Werbung

    Der Sinn soll sein, dass die Werbung, auf der Startseite nciht gezeigt wird, sondern erst wenn man den more-button kligt, oder halt auf der Einzelansicht des Artikel ist.
    Doch so wird der Cotent nun oberhalb (das was auf der Startseite ist) und unterhalb des Artikel (ganzer Text) ausgeben. So sollte das nun ja nicht sein, sondern eher wie dort: (Bitte Kommentar/Link dann löschen, wenn problem gelöst)

    Danke

  16. Kommentar Autor
    Monika
    Kommentar

    zweimal aufsplitten weiß ich ehrlichst derzeit nicht wie es gehen sollte…

    lg

  17. Kommentar Autor
    Paul
    Kommentar

    OK, hab es nun, muss wie folgt aussehen:

    Werbung oder was anderes

    Das TRUE hat gefehlt. Danke für die Hilfe, werde vielleicht ein kleines Tutorial schreiben.

  18. Kommentar Autor
    nick
    Kommentar

    Hallo,

    ich würde gern das More Tag verschwinden lassen.
    Ich habe unter meinen Beitrag eine Grafik „Ganzen Artikel lesen“

    ich will den Beitrag zwar per more Tag kürzen aber diese „weiterlesen“ verlinkung soll verschwinden da ich ja wie gesagt eine grafik unten habe.

    weiß da wer ne lösung?

    danke
    nick

  19. Kommentar Autor
    Monika
    Kommentar

    hi nick
    die Lösung ist , dass Du mit untenstehenden den the_content tag bei Dir änderst und den Pfad zu deinem *weiterlesen* Bild angibst – den genauen Pfad,

    <?php the_content(''); ?>

    lg

  20. Kommentar Autor
    Nick
    Kommentar

    hallo,

    der grafiklink befindet sich leider nicht im Beitrag sondern außerhalb.

    Ich müsste nur wissen wie ich das More Tag unterbinden kann und schon ist alles geritzt.

    Danke

  21. Kommentar Autor
    Monika
    Kommentar

    das machst Du auch nicht im Beitrag, sondern Du verwendest nur den more Button beim Schreiben fügst obiges in die index.php ein , dort wo jetzt the_content …. steht,

    magst Du dies nicht, dann mußt Du in der index.php the_excerpt statt the_content verwenden, magst du da spezielle Sachen haben mußt Du das Plugin the excerpt reloaded suchen und verwenden,
    anders gehts net ;)

    lg

  22. Kommentar Autor
    hombertho
    Kommentar

    Super! Danke für den Tipp. Das war genau das was ich gesucht hatte um Werbung direkt nach dem more Tag einzublenden :-)
    Viele Grüße
    Thomas

  23. Kommentar Autor
    Monika
    Kommentar

    Hi Thomas

    ganz ehrlich:wozu braucht man dies denn sonst :zwinker:

    lg

  24. Kommentar Autor
    Andreas
    Kommentar

    Klasse hack, wurde niemals drauf kommen, bin jetzt gerade dabei es in meine wordpress theme einzubinden, vielen dank.

  25. Kommentar Autor
    Thomas
    Kommentar

    Es gibt eine einfache Möglichkeit den gewünschten Effekt, also das Wegfallen des Textes vor dem bei der Eingabe zu steuern. Einfach hinter das packen.

  26. Kommentar Autor
    Thomas
    Kommentar

    Ergänzung, weil ein Teil des Kommentars geschluckt wurde: hinter das more einfach ein noteaser packen <!–noteaser–>

  27. Kommentar Autor
    Maximilian
    Kommentar

    Danke für die gute Erklärung, nun weiß ich auch, wofür der more Tag gut ist. Dachte ursprünglich, das Ganze wäre rein für die Formatierung der Texte, also Umbrüche und so zuständig. Aber OK, werde es aber dennoch nicht brauchen.

  28. Kommentar Autor
    Steffan
    Kommentar

    Vielen Dank, bin über Google auf die Seite gestoßen und wurde fündig ;- )

  29. Kommentar Autor
    Bido
    Kommentar

    in der single.php finde ich bei mir nur folgendes:

    <?php
    get_header();

    if (have_posts())
    {
    while (have_posts())
    {
    art_page_navi();
    art_post();
    comments_template();
    }
    art_page_navi();
    } else {
    art_not_found_msg();
    }

    get_footer();

    Wo soll ich sonst was ändern?

  30. Kommentar Autor
    Monika
    Kommentar

    I love(hate) themes like this ;)

    irgendwo muss es vielleicht eine loop.php geben oder eine .php Datei die die Ausgabe der Artikeln steuert- da hilft entweder der ThemeAutor aus, oder Du musst die Dateien dort durchsuchen…

    lg

  31. Kommentar Autor
    Eike
    Kommentar

    Hallo,

    interessanter Beitrag. Hast Du auch eine Lösung für folgendes?: Ich will das, was auf der Hauptindexseite vor dem More-Tag sozusagen als Teaser kommt, auf dem Einzelbeitrag (single) dann im Text fett darstellen. Das ist sicher nicht so schwer, oder?

  32. Kommentar Autor
    Monika
    Kommentar

    nee Eike ist nicht schwer, nutz obiges Tutorial,
    gib da eine eigene css class drumherum und definiere diese als *fett* in der style.css