Sidebar
ein-/ausblenden

WordPress Artikel Veröffentlichung nutzen

Plugin für WordPress SEO

Anzeige

Nicht immer will man alles so lösen wie es WordPress vorsieht und sucht eine andere Lösung. Nicht selten muss man für diverse Anwendungen das Backend nicht nutzen um Beiträge zu veröffentlichen.
Ein einfaches Beispiel wäre ein Formular, egal wo, mit dem ein Artikel veröffentlicht wird, in dem der Inhalt der Formular an WordPress übertragen wird und automatisch veröffentlicht wird. Alternativ könnte man ihn mit einem anderen Status senden und so erst frei geben, wenn die Redaktion den Artikel frei gibt.
Um nicht bei Null mit der Überlegung zu starten, hier die Funktion die diese Mächtigkeit inne hat und für alle Prozesse der Veröffentlichung verantwortlich ist.

wp_insert_post($postarr = array(), $wp_error = false)

Viele Infos liefert auch der Codex zur Funktion.

Mögliche Parameter $postarr


comment_status    [ 'closed' | 'open' ] // 'closed' means no comments.
ID                [ <post id> ] //Are you updating an existing post?
menu_order        [ <order> ] //If new post is a page, sets the order should it appear in the tabs, Default is 0
page_template     [ <template file> ] //Sets the template for the page.
ping_status       [ value of default_ping_status ] //Ping status?, Default is empty string
pinged            [ empty ] //?
             
post_author       [ $user_ID ] //The user ID number of the author.
post_category     [ array(<category id>, <...>) ] //Add some categories.
post_content      [ <the text of the post> ] //The full text of the post.
post_date         [ Y-m-d H:i:s ] //The time post was made.
post_date_gmt     [ Y-m-d H:i:s ] //The time post was made, in GMT.
post_excerpt      [ <an excerpt> ] //For all your post excerpt needs.
post_parent       [ <post ID> ] //Sets the parent of the new post, Default is 0
post_password     [ empty ] //password for post?, Default is empty string
post_status       [ 'draft' | 'publish' | 'pending' ] //Set the status of the new post., Default is 'draft'
post_title        [ <the title> ] //The title of your post.
post_type         [ 'post' | 'page' ] //Sometimes you want to post a page, Default is 'post'.
tags_input        [ '<tag>, <tag>, <...>' ] //For tags.
to_ping           [ whetever ] //Whether to ping.

Beispiel

Im einfachsten Fall übergibt man die Inhalte des Formulars an das Array und dieses nutzt die Funktion, die sich dann um die Prozesse in WordPress kümmert.

Damit die Funktion auch außerhalb von WordPress zur Verfügung steht, muss die Funktionalität von WordPress in diesen Bereich geholt werden. Ist das genannte Formular also nicht mit einem Template in WordPress realisiert, sondern extern von WP, dann muss die Datei wp-load.php eingebunden werden, siehe Beitrag „WordPress Funktionen außerhalb von WordPress nutzen“.


require( '../my_wordpress_install_root/wp-load.php' );

// Create post object
$my_post = array();
$my_post['post_title']    = 'My post';
$my_post['post_content']  = 'This is my post.';
$my_post['post_status']   = 'publish';
$my_post['post_author']   = 1;
$my_post['post_category'] = array(0);

// Insert the post into the database
wp_insert_post( $my_post );"

Damit stehen sehr viele Szenarien zur Verfügung und vielleicht hilft dieser kleine Hinweis um die eine oder andere Idee zu verwirklichen.

7 Kommentare zu „WordPress Artikel Veröffentlichung nutzen“

  1. 1
    Kommentar von fiacyberz

    Ich verstehe kein Wort vom dem worauf du eigentlich hinaus willst.. sorry
    Habe es mir eben 3x durchgelesen und weiss es immer noch nicht.

    Solltest den Text mal überarbeiten :)

  2. 2
    Kommentar von Ralf

    Zuvor sollte man aber erst einmal mittels einem POST-Request einen Login durchführen.

    Im Grunde genommen ist dieses "Feature" ein riesiges Sicherheitsloch. Ich würde mir doch wünschen das Funktionen in meiner Software auch nur von dieser genutzt werden. Ein Angriffsszenario könnte in etwa so aussehen:
    Ein Hacker sendet permanent über diese Methode Beiträge. Oder schlimmer noch, er versucht von außen einen Benutzer mit Adminrechten anzulegen. Dann muss er nur den richtigen Moment abwarten bis der Admin im Blog eingeloggt ist und schon sind neue Beiträge oder gar Benutzer angelegt.

    Ich habe meine htaccess in diesen Punkt so abgewandelt das PHP-Scripte auf dem Server auch nur von dort aus aufgerufen werden können. Ein Zugriff von Außen ist untersagt.
    Blogposts lassen sich auch über die XMLRPC-Api veröffentlichen. Vielleicht der einfacherer und sichere Weg.

  3. 3
    Kommentar von thomas57

    Wenn ich das richtig verstanden habe, dann befindet sich ein Formular auf Deiner Webseite, in dem der User einen Artikel schreiben kann. Dieser wird dann veröffentlicht oder auch nicht. je nach dem wie es eingestellt ist.
    Dafür gibt es ein schönes Plugin (Tdom). Damit wird all das ermöglicht, nur fängt diese auch noch Spam ab, und weitere böse Jungs.

  4. 4
    Kommentar von Andreas

    Ich muss fiacyberz Recht geben. Den einleitenden Abschnitt habe auch ich nach mehrmaligem Lesen nicht verstanden. Klar wurde es mir erst, nachdem ich mir den Code und das Beispiel angesehen habe.
    Das von Thomas57 empfohlene Plugin Tdom schaue ich mir gleich mal an.

  5. 5
    Kommentar von Bastian

    Das ist glaube ich nur was für WP-Hartgesottene. Für mich leider auch zu hoch, habe nach einer einfacheren Lösung gesucht...Trotzdem Danke.

  6. 6
    Kommentar von Roman

    Hallo.
    Ich wollte die Artikel ersteinmal als "draft" abspeichern, damit ich sie hinterher noch weiter bearbeiten und dann selbst veröffentlichen kann.

    Nun habe ich erstmal die "xmlrpc.php" geöffnet, dann nach "$post_status =" gesucht und die Treffer in folgendes umgeschrieben: "$post_status = ($draft) ? 'publish' : 'draft';"

    Zu finden war der Code in folgenden Zeilen:
    - 1859
    - 2084
    - 2100
    - 2463
    - 2478

    Hoffe ich konnte helfen. Bei mir funktioniert es jetzt immerhin.

    Gruß
    Roman

  7. 7
    Kommentar von Susann

    Das ist im Prinzip das wonach ich gesucht habe. Eine Möglichkeit von user generated Content, aber nicht als Kommentar oder in einem Forum, und auch ohne Registrierung. Wenn das ohne Plugin geht ist mir dass immer lieber als mit.

Kommentare sind geschlossen.