Wie verknüpfe ich eine Kategorie mit einem Post-WordPress?

Lesezeit: 3 Minuten

Benutzeravatar von jAbreu
jAbreu

Ich erstelle eine Funktion, die automatisierte Posts in WordPress erstellt. Im Moment erstellt die Funktion den WordPress-Blogbeitrag, aber ich kann die Kategorie nicht eingeben.

    public class Post
    {

        public string Title { get; set; }

        public string Description { get; set; }

        public string PostType { get; set; }

        public DateTime DateCreated { get; set; }

        public DateTime DateCreatedGmt { get; set; }

        public List<string> Categories { get; set; }

        public List<string> MtKeywords { get; set; }

        public string MtExcerpt { get; set; }

        public string MtTextMore { get; set; }

        public string MtAllowComments { get; set; }

        public string MtAllowPings { get; set; }

        public string WpSlug { get; set; }

        public string WpPassord { get; set; }

        public string WpAuthorId { get; set; }

        public string WpAuthorDisplayName { get; set; }

        public string PostStatus { get; set; }

        public string WpPostFormat { get; set; }

        public bool Sticky { get; set; }

        public List<CustomFields> CustomFields;

        public Enclosure Enclosure;
    }

Ich habe versucht, zuerst zum Unterricht zu gelangen und nur den Kategorienamen zu übergeben, um Fehler zu vermeiden:

        var wordpress  = XmlRpcProxyGen.Create<IWordpress>();

        Category[] categories= wordpress.getCategories(0, username, password);

Als Parameter erhält die Methode, die die Beitragskategorie aufbaut. Diese Methode gehört zur Klasse Post. Die Kategorie wird folgendermaßen in den Beitrag eingefügt:

        Categories.Add(category.categoryName);

Könnte mir jemand helfen? Ich habe diesen Code so oft gesehen, dass ich nicht sehen kann, wo ich falsch liege: (.

Die Attribute von Post wurden in der Dokumentation erhalten: http://codex.wordpress.org/XML-RPC_MetaWeblog_API#metaWeblog.newPost. Ich verwende CookComputing.XmlRpc – http://xml-rpc.net/ – Version 2.5.0

Nachdem ich die Frage gepostet hatte, wurde mir klar, wie falsch die Kategorie gehandhabt wurde.

Um den Beitrag zu platzieren, erstellen wir:

class MetaWeblogClient : XmlRpcClientProtocol
{

    [XmlRpcMissingMapping(MappingAction.Ignore)]

    public struct Post
    {
        public DateTime dateCreated;
        public string description;
        public string title;
        public string[] categories;
        public string permalink;
        public string postid;
        public string userid;
        public string wp_slug;

    }

Und initialisieren Sie die Attribute in:

    public void newPost(string userid, string password, string description, string title)
    {
        this.Url = "http://#########.wordpress.com/xmlrpc.php";

        Post post = new Post();

        post.categories = new string[1];
        post.categories[0] = "Category Name";
        post.dateCreated = DateTime.Now;
        post.userid = userid;
        post.description = description;
        post.title = title;

        newPost("0", userid, password, post, true);

    }

    [XmlRpcMethod("metaWeblog.newPost")]

    public string newPost(string blogid, string authorId, string password, MetaWeblogClient.Post string description, bool publish)
    {
        //return string postid
        return returnPostId = (string)this.Invoke("newPost", new Object[] { blogid, authorId, password, description, publish });

    }

Mein Fehler bezog sich nicht auf die Initialisierung der Array-Kategorie. Die obige Struktur ist nicht korrekt und ich werde sie aus meinem Code entfernen.

Vielen Dank für Ihre Aufmerksamkeit.

  • Hast du es schon mal mit einem String-Array versucht (string[] categories) statt einer Liste (List<..>)?

    – vstm

    15. Oktober 2012 um 7:15 Uhr

  • Nachdem ich die Frage gepostet hatte, wurde mir klar, wie falsch die Kategorie gehandhabt wurde. Ich werde posten, wie ich das Problem lösen konnte. Ich schäme mich dafür, es nicht vorher gesehen zu haben. Sie haben Recht. Danke für die Antwort 😀

    – jAbreu

    15. Oktober 2012 um 16:14 Uhr

  • Hallo @jAbreu – könntest du deine Lösung des Problems posten und als Antwort markieren? Vielen Dank!

    – doppelt scharf

    24. Oktober 2012 um 13:49 Uhr

  • Der Beispielcode ist ungültig, funktioniert mit der richtigen Kategorie.

    – doppelt scharf

    16. November 2013 um 20:14 Uhr

Eine andere Sache, die Sie verwenden könnten, ist die Methode wp.newPost:
http://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost

Dabei werden „Taxonomien“ anstelle von Kategorien verwendet.

Ich aktualisiere derzeit den WordPress-Wrapper von JoeBlogs, um Taxonomien (Kategorien) zu unterstützen.
https://github.com/alexjamesbrown/joeblogs

1405120cookie-checkWie verknüpfe ich eine Kategorie mit einem Post-WordPress?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy