1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

WP-Artikel in Homepage einbinden

Dieses Thema im Forum "Allgemeines" wurde erstellt von DManstrator, 12. April 2014.

  1. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Guten Tag,

    ich wollte vorher in meiner Seite eine PHP-Funktion einbauen, die mir meinen letzten WP-Artikel samt Link ausgibt bzw. einen Link mit dem Artikel-Namen zum Link. Nach einer kurzen Google-Suche fand ich eine gute Vorlage, die ich dann zu folgendem umgeändert habe:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    PS: Das mit dem span-Tag vor und nach dem a-Tag hat seinen Sinn (CSS).

    Nun aber funktioniert das ganze nicht so, wie es soll.

    1. Es werden die letzten 3 Artikel ausgegeben (der Älteste unten).
    2. Es gibt einen Konflikt mit dem Count-Per-Day-Plugin.

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Ich weiß nicht, was ich jetzt machen soll. Habe schon probiert die Warning-Meldung auszuschalten [error_reporting(E_ALL^ E_WARNING);], ohne Erfolg und das Plugin will ich auch nicht löschen / deaktivieren.
    Außerdem verstehe ich nicht, warum mir meine letzten 3 Artikel ausgegeben werden.

    Bitte um Hilfe, vielen Dank.

    Gruß, DMan
     
    #1 DManstrator, 12. April 2014
    Zuletzt bearbeitet: 12. April 2014
  2. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    So ist es halt mit den guten Schnipseln, die man nach Jahren findet.
    showposts ist deprecated und sollte nun langsam nicht mehr verwendet werden.

    Zusätzlich wirst Du wohl auch noch etwas falsch gespeichert haben, zumindest würde ich bei der Fehlermitteilung davon ausgehen. Also auf Leerzeichen oder HTML vor öffnenden PHP-Tags achten und im richtigen Editor mit UTF-8 ohne BOM speichern.
     
    #2 Melewo, 12. April 2014
    Zuletzt bearbeitet: 12. April 2014
  3. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    Du hast doch sogar schon den Hinweis wo genau der Output gestartet ist - da sollte es doch simpel sein das zu finden.
     
  4. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Und was soll ich dann benutzen?


    Hab ich jetzt nicht gesehen, witzigerweiße wird der o.g. Error nurnoch 1 ausgegeben. Hab aber nicht direkt was dran geändert. Hab nur die wp-blog-head.php aufgerufen. Bei 'HTML vor öffnenden PHP-Tags' fällt mir nur die Zeile mit dem a-Tag ein.



    Ja, Zeile 25, da lande ich hier:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Weiter geht das so:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wüsste nicht, was diese Zeile da oben ausmacht.


    PS: Danke für eure Antworten. :)
     
    #4 DManstrator, 12. April 2014
    Zuletzt bearbeitet: 12. April 2014
  5. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    Deine Fehlermeldung bedeutet dass der Header nichtmehr modifiziert werden kann weil bereits irgendeine Ausgabe erfolgte - und ein echo ist eine Ausgabe, also ist genau das der Knackpunkt. Du könntest eventuell versuchen die Reihenfolge des einbindens zu ändern: sobald der modifizierte Header gesendet ist kann die Ausgabe erfolgen, dann ists kein Prolem mehr.

    Bezüglich der Funktion: ich nutze dafür etwas wie
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    - das sollte Dir den aktuellsten Post in die Variable packen.

    Noch ne Frage: Du beendest den PHP-Bereich VOR dem letzten Link? Ist das Absicht? Mir kommt das so etwas seltsam vor.
     
    #5 Nevery, 12. April 2014
    Zuletzt bearbeitet: 12. April 2014
  6. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Hey Nevery,

    danke für die schnelle Antwort.

    Das ist meines Wissens nach unmöglich, da zuerst die Links zu den Seiten und erst dann der letzte WP-Artikel aufgelistet werden soll.

    PS: In den Zeilen 10 - 17 ist auch ne PHP-Schleife, aber nur eine Funktion (die GetServerLink-Funktion). Egal?

    Soll dann also am Ende so aussehen?:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ja. Die 4 Links darüber brauchen ja die GetServerLink-Funktion, der Letzte nicht.


    Nochmal Danke für die schnelle Antwort.

    Gruß, DMan
     
  7. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Das ist doch nicht die Index von einem Theme sondern die Index von der WordPress-Engine und die enthält nur 18 Zeilen. Ich habe da zwar zu Testzwecken auch schon gelegentlich Code untergebracht, aber auf so eine Idee in der PHP beenden zu wollen, um HTML einzufügen, auf so eine Idee kam ich bisher noch nicht. Möchte es auch nicht in einem Test nachstellen, nur um so eine Fehlermeldung zu produzieren.

    Wenn Du nicht einmal die Pfade Deiner wichtigsten Dateien kennst, solltest Du nicht versuchen deren Code zu verändern oder zu ergänzen.
     
  8. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    Ups... guter Hinweis, habe ich glatt übersehen. Nein, da sollte man wirklich nicht irgendwas einfach so reinschreiben.

    DMan, beschränke Dich doch lieber auf Änderungen innerhalb des verwendeten Themes, dann sollten solche Probleme auch nicht auftreten. Bezüglich Deiner Frage wie die Funktion dann zu verwenden ist - ich pflege das in etwa so einzusetzen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    - bei mir eben mit den letzten 3, aber das kann man natürlich auch mit nur einem so machen - in dem Fall kannst Du das HTML drumherum was bei mir dazu dient die drei News zusammenzuhalten sicherlich auch weglassen.
     
    #8 Nevery, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  9. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Nein, das ist die Index meiner Homepage.
    .de/index.php, nicht .de/WordPress/index.php


    Hab das gestern mal getestet, es wurden alle Artikel aufgelistet.


    Edit: Das Warning ist weg, hab einfach das Include nach ganz oben gesetzt. (facepalm)
     
    #9 DManstrator, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  10. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    Wie gesagt, ich würde es auch nicht über query_posts machen - wozu auch, der eine Post den Du haben willst sitzt dann schon in dem Array, Verwendung siehe oben ;)
     
  11. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Das ist Bullshit, was Du schreibst, weil die /www/index.php keine 25 Zeilen hat, sondern nur 18 und der Serverpfad gemeint ist und nicht die URL, egal wie die URL sich schreibt.

    Wenn sich die Fehlermeldung auf die index vom Theme bezogen hätte, dann hätte die Fehlermeldung in etwa so aussehen müssen bei der URL de/WordPress/index.php:

     
    #11 Melewo, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  12. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Und das kommt mir genauso wie Bullshit vor, da die '/wp-blog-header.php' eigentlich bereits in der index von WP geladen wird

    index.php von WP:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und nicht in der index vom Theme, was völlig über wäre, da die '/wp-blog-header.php' weitere Dateien mit require_once nachladet,

    wp-blog-header.php:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    was bedeutet, dass diese Dateien, da sie bereits von der index von WP geladen werden, ohne kein zweites Mal von einer Theme-Datei geladen werden, dafür sorgt ja das once.

    In den Theme-Dateien wird eigentlich die Funktion

    get_header();

    verwendet, die in der Datei general-template.php definiert wird.

    Meiner Meinung nach hast Du einfach nur die index.php von WP mit der index.php vom Theme verwechselt und bei den Fehlermitteilungen ebenso.
     
    #12 Melewo, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  13. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Erkundige dich doch bitte, wie das mit den Pfaden bei bPlaced abläuft, vielen Dank.


    PS: Hab jetzt 2 verschiedene PHP-Codes probier's:

    1.
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ergebnis:
    «Artikelname» – dBlog (CSS-span-Tag wird nur hier beachtet)
    – dBlog
    – dBlog
    [...] (Das geht solange weiter, wie die Anzahl an Artikeln existiert)

    Link zu «Artikelname» funktioniert korrekt.



    2. (Deine Vorlage umgeändert)
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ergebnis:
    Letzter Artikel + '– dBlog', nur der Link geht nicht bzw. führt zur Hauptseite (lt. DOM:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    ). Idee?


    PS: Die Fehler sind noch da. Beim Laden der Seite wird erst ne leere Seite mit den 2 Warnings angezeigt und danach wird die Seite ganz normal und ohne Fehler angezeigt.
     
    #13 DManstrator, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  14. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    #14 Nevery, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  15. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Das siehst Du doch in den Fehlermitteilungen, PHP lügt selten.

    Radikale Methode:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Fehler in Index vom Theme und darunter in index von WP:

    C:\xampp\htdocs\wordtheme\wp-content\themes\exempel\index.php
    C:\xampp\htdocs\wordtheme\index.php
     
  16. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Hey Nevery,

    danke für die Lösung.

    $value->guid hat funktioniert, es hat den ?p=X-Link ausgegeben. <a href="'.$value->get_permalink.'"> hat zu nichts geführt.
    Gibt's ne Methode, um den genauen Link (YYYY/MM/DD/«Artikel-name») rauszubekommen?

    PS: Die Warnings nerven wirklich und error_reporting(0); und was es noch alles gibt funktioniert nicht. Gibt's da ne Lösung, das abzuschalten oder zu beheben?
     
  17. Nevery

    Nevery Well-Known Member

    Registriert seit:
    15. Oktober 2013
    Beiträge:
    404
    Zustimmungen:
    0
    Hast Du's denn schon mit der get_permalink(id)-Methode probiert? Ich hab die Unterschiede grade nicht im Kopf und auch keine Lust es zu testen, wenn Deine Permalinkstruktur entsprechend ist könnte das klappen.

    Was die Fehler angeht: nur, wenn Du aufhörst an so früher Stelle etwas auszugeben oder der Header nachher nicht mehr modifiziert werden soll ;)
     
  18. DManstrator

    DManstrator Member

    Registriert seit:
    12. April 2014
    Beiträge:
    9
    Zustimmungen:
    0
    Meh. Wüsste nicht, wie ich das mit dem GetServerLink anders regeln könnte.

    Edit: Ich glaub, ich hab ne Idee. Wenn's geklappt hat sag ich Bescheid.


    Hier die Lösung:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #18 DManstrator, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  19. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Woher hast Du dieses Beispiel mit "WordPress/wp-blog-header.php"?
    Würde mich jetzt wirklich einmal interessieren. Kommt das so in uralten Beispielen vor oder auch in neueren?
    Und Fehler beseitigt man, statt diese verstecken zu wollen.

    Habe ich jetzt gerade als index.php und als single.php getestet, weil ich mir das Elend gar nicht mit ansehen kann:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Gibt noch einige andere Varianten.
     
  20. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Noch ein zweites Beispiel, wobei have_posts eigentlich bereits true oder false liefert, jedoch zusätzlich noch abgefragt werden könnte, wie man es in vielen Beispielen sieht:

    https://codex.wordpress.org/Function_Reference/have_posts

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Bei Dir lohnt es sich aber nicht eine neues Objekt zu instanziieren, weil eigentlich alles bereits enthalten sein sollte. Es sollten sich auch genügend andere und vor allen neuere Beispiele bei WP finden lassen. Auf die Erklärung woher Du das hast,

    include("WordPress/wp-blog-header.php")

    da warte ich wirklich.
     
    #20 Melewo, 13. April 2014
    Zuletzt bearbeitet: 13. April 2014
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden