Snippet, um eine XML Seite zu erstellen

  • Hallo,

    ich habe von der Seite hier ein Snippet downgeloadet, welches in functions.php eingebaut werden muss (http://fastwp.de/8423/). Leider functioniert das bei mir nicht und ich bekomme eine Fehlermeldung.
    Kann mir jemand helfen, wenn ich ihm/ihr meine functions.php und das Snippet zur Verfügung stelle?

    VG Marco

    • 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

  • […] wenn ich ihm/ihr meine functions.php und das Snippet zur Verfügung stelle?


    Dieser Teil der Frage gehört eher in die Jobbörse.
    Ansonsten, für offene Hilfe – die dann auch anderen helfen kann – wäre zunächst einmal die genaue Fehlermeldung hilfreich.

    Gruß
    helix

  • Naja,
    ich will eigentlich nur wissen, wo genau in functions.php das folgende Snippet eingebaut werden muss. Damit kann auch jeder andere das Snippet verwenden. Das dient doch der allgemeinen Hilfe, oder nicht?

    PHP
    add_action("publish_post", "create_sitemap"); add_action("publish_page", "create_sitemap"); function create_sitemap() { $postsForSitemap = get_posts( array( 'numberposts' => -1, 'orderby' => 'modified', 'post_type' => array( 'post', 'page' ), 'order' => 'DESC' ) ); $sitemap = '<?xml version="1.0" encoding="UTF-8"?>'; $sitemap .= "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"; foreach( $postsForSitemap as $post ) { setup_postdata( $post ); $postdate = explode( " ", $post->post_modified ); $sitemap .= "\t" . '<url>' . "\n" . "\t\t" . '<loc>' . get_permalink( $post->ID ) . '</loc>' . "\n\t\t" . '<lastmod>' . $postdate[0] . '</lastmod>' . "\n\t\t" . '<changefreq>monthly</changefreq>' . "\n\t" . '</url>' . "\n"; } $sitemap .= '</urlset>'; $fp = fopen( ABSPATH . "sitemap.xml", 'w' ); fwrite( $fp, $sitemap ); fclose( $fp ); }

    ********

    Einmal editiert, zuletzt von maxe (10. Juli 2016 um 12:44)

  • Funktionen kannst du immer ans Ende der functions.php (falls vorhanden vor dem ?>) einbinden.
    Ansonsten, was bekommst du für eine Fehlermeldung?

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ich habe es jetzt am Ende eingefügt. ?> gibt es nicht.

    Wenn ich einen Beitrag aktualisiere (sodass sich die XML Site erstellt, bekomme ich diese Fehlermeldungen:


    Warning: fopen(/www/htdocs/w014a588/truelovebybutzde/sitemap.xml): failed to open stream: Permission denied in /www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php on line 252

    Warning: fwrite() expects parameter 1 to be resource, boolean given in /www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php on line 252

    Warning: fclose() expects parameter 1 to be resource, boolean given in /www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php on line 252

    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php:252) in /www/htdocs/w014a588/truelovebybutzde/wp-admin/post.php on line 197

    Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php:252) in /www/htdocs/w014a588/truelovebybutzde/wp-includes/pluggable.php on line 1167

  • Warum nutzt du nicht einfach ein Plugin wie https://wordpress.org/plugins/google-sitemap-generator/

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Also das snippet funktioniert bei mir einwandfrei in der functions.php .

    Ich denke dein Problem liegt eher hier:
    Warning: fopen(/www/htdocs/w014a588/truelovebybutzde/sitemap.xml): failed to open stream: Permission denied in/www/htdocs/w014a588/truelovebybutzde/wp-content/themes/CreatorThemeRes/functions.php on line 252

    mit dem snippet erstellst du einen neue Datei innerhalb des Root, dass dieses Verhalten nicht immer erwünscht ist kann man sich vorstellen. Schau dir bitte mal die Properites des Ordners truelovebybutzde an und setze die Permissions so das User/Group/Others schreiben und lesen (fwrite/fopen) können. Wenn das alles nicht hilft kannst du alles erstmal berechtigen (777).

    Ich schicke mal eine obligatorische Warnung bei dem ändern von Berechtigungen hinterher. Vllt. auch einfach bei all-inkl nachfragen, die helfen sicher und kennen sich auf Ihren System ungleich besser aus :)

  • Nein, das Snippet gehört schon in die functions.php

    Ich habe es mal kurz bei mir in einer fast jungfräulichen Installation ohne PlugIns getestet. Funktioniert.

    Was du überprüfen kannst: Dateirechte?
    Und dann: Geht es, wenn du alle deine PlugIns deaktivierst (mögliche Inkompatibilität mit einem PlugIn). Geht es, wenn du dein Theme deaktivierst und stattdessen ein Standard-Theme Twenty-irgendwas aktivierst?

    Alternativen: Es gibt auch PlugIns, die nur diese Sitemap-Funktionalität liefern.
    Und noch ein kleiner Einwand gegen das Argument, dass ein SEO-PlugIn zu schwergewichtig würde: Im Gegenzug bieten diese SEO-PlugIns dann aber die Möglichkeit, dass man auch einzelne Seiten, Beiträge, Beitragsgruppen etc. aus der Sitemap raushalten kann. Auch das kann benötigt oder erwünscht sein. Es ist also nicht ein Tool grundsätzlich zu verdammen, sondern man muss immer gucken, was man genau will und braucht.

    Gruß
    helix

    Nachtrag: Michael Drauer war schneller.

    Einmal editiert, zuletzt von helix (10. Juli 2016 um 15:55)

Jetzt mitmachen!

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