Dynamische Seitentitel

  • Hallo liebe Community,

    habt Ihr eine Ahnung ob es funktioniert den Titel einer Seite dynamisch zu gestalten?

    Ich beziehe aus einer XML Datei immer neue News, die ich in der Datenbank abspeichere.

    Alelrdings würde ich in der URL gerne folgende Struktur haben:

    /news/NEWSTITEL/id=1234 (damit es besser für die SEO Optimierung ist)

    meine aktuelle Struktur der Url sieht wie folgt aus:

    /news/post/?id=1234

    post ist zur Zeit eine einfach angelegte Seite mit einen eigenen page-template.

    Habt ihr vorschläge wie ich das vorhaben umsetzen könnte? Bin bis dato noch auf keien Lösung gestoßen und bei google finde ich auch nichts passendes.

    Danke euch :)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Was ist unter "Einstellungen > Permalinks" eingestellt?

    Eigene URL-Teile kann man z.B. über custom query vars nutzen, hier ein älteres Tutorial dazu.

    In Deinem Fall z.B. zwei Variablen /news/post/1234/irgendeintextdereinfachgarnichtausgewertetwird/ oder nur eine ohne den ID /news/post/deindynamischertitelderinderdbabgefragtwirdohneid/

    Was sich evtl. als komplette Alternative empfehlen würde, ist ein sog. "Custom Post Type" für Deine News und dann die Nutzung der ganz normalen WordPress Funktionen wp_insert_post() usw.

    3 Mal editiert, zuletzt von b3317133 (8. Februar 2019 um 13:55)

  • Was ist unter "Einstellungen > Permalinks" eingestellt?

    Eigene URL-Teile kann man z.B. über custom query vars nutzen, hier ein älteres Tutorial dazu.

    In Deinem Fall z.B. zwei Variablen /news/post/1234/irgendeintextdereinfachgarnichtausgewertetwird/ oder nur eine ohne den ID /news/post/deindynamischertitelderinderdbabgefragtwirdohneid/

    Was sich evtl. als komplette Alternative empfehlen würde, ist ein sog. "Custom Post Type" für Deine News und dann die Nutzung der ganz normalen WordPress Funktionen wp_insert_post() usw.

    custom Post type mit abfrage ob schon existiert sonst wp_insert post?

    Klingt wohl am besten :)

  • Wahlweise auch Custom Post Type mit bei jedem Import erst alle Beiträge löschen und dann alle neu einfügen. Es gibt viele Möglichkeiten.


    Hab es soweit hinbekommen das er wp_insert_post ausführt sobald es die News nicht gibt.

    Allerdings hab ich noch eine Frage bzw. Problem.

    Wie füge ich ein beitragsbild ein? In der xml habe ich eine url die auch in der Datenbank in einer extra Tabelle gespeichert wird. Wie setze ich diese Url nun beim wp_insert_post als Beitragsbild? :/

  • Beitragsbilder werden nur lokal in WordPress aus der Mediathek genutzt.

    Variante 1: Lade die Bilder in die Mediathek, z.B. via media_handle_upload(), wp_handle_sideload() o.ä. und setze dann mit set_post_thumbnail() das Beitragsbild.

    Variante 2: Speichere die externe URL zum Bild als Custom Field beim entspr. Beitrag und passe die Templates für z.B. single und archive des Custom Post Types bei der Ausgabe des Beitragsbildes entspr. an, so dass beim Vorhandensein des Custom Fields ein img Tag mit der externen URL anstelle von the_post_thumbnail() usw. für das Beitragsbild genutzt wird. Alternativ zur Anpassung der Templates nutze den einen post_thumbnail_html Filter und ersetze dann das HTML entspr. mit einem passenden img Tag zu Deiner externen URL.

  • Beitragsbilder werden nur lokal in WordPress aus der Mediathek genutzt.

    Variante 1: Lade die Bilder in die Mediathek, z.B. via media_handle_upload(), wp_handle_sideload() o.ä. und setze dann mit set_post_thumbnail() das Beitragsbild.

    Variante 2: Speichere die externe URL zum Bild als Custom Field beim entspr. Beitrag und passe die Templates für z.B. single und archive des Custom Post Types bei der Ausgabe des Beitragsbildes entspr. an, so dass beim Vorhandensein des Custom Fields ein img Tag mit der externen URL anstelle von the_post_thumbnail() usw. für das Beitragsbild genutzt wird. Alternativ zur Anpassung der Templates nutze den einen post_thumbnail_html Filter und ersetze dann das HTML entspr. mit einem passenden img Tag zu Deiner externen URL.


    Hättest du vlt einmal ein Beispiel für den media Upload ? Bekomme dies nicht hin egal was probiere :/

  • Bei media_handle_upload() simuliert man einen kompletten $_POST Upload Request. Da Dein Bild als URL verfügbar ist, probiere es mal mit dem Beispiel bei wp_handle_sideload() zzgl. entspr. Fehlerausgaben oder ggf. noch besser mit media_sideload_image()

    Teste es mit folgenden Code:

    Das Image wird auch in die Mediathek geladen. nun habe ich versucht mit set_post_thumbnail($post_id, $image) das Bild zu setzen, worauf aber keine Reaktion kommt


    Einmal editiert, zuletzt von nature225 (9. Februar 2019 um 10:34)

  • Update:
    In der Mediathek wird auch angezeigt zu welchem Beitrag das Bild hochgeladen ist. Allerdings wird beim beitrag das Bild nicht angezeigt. In der Datenbank ist das Bild aber dem Post zugeordnet. Woran köntne dies noch liegen?

    Wäre sehr dankbar über einen Tipp :)

  • media_sideload_image() müsste das alles schon alleine machen, ohne set_post_thumbnail() usw. - wobei ich da nicht ganz sicher bin, Quellcode nachlesen.

    Würde wie beschrieben die Beispiele überall mit entspr. Fehlerausgaben ergänzen und ausgeben, das ist einfacher zum debugging...

    Deine Zeile [FONT=Courier New]wp_get_attachment_url( $id );[/FONT] kommt mir z.B. seltsam vor, funktioniert das? Woher kommt [FONT=Courier New]$id[/FONT]? Was genau wird zurückgegeben?

    Noch ein anderer Testansatz: Wird das Bild im Backend beim Bearbeiten des Beitrags als Standard Beitragsbild gezeigt? Mit einem Standard Twenty XX Theme?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!