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

PHP Fehler: Kategorie über Variable setzen

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von playnic, 25. Oktober 2014.

Schlagworte:
  1. playnic

    playnic Well-Known Member

    Registriert seit:
    25. April 2014
    Beiträge:
    55
    Zustimmungen:
    0
    Hallo zusammen,


    Ich habe folgendes Anliegen, möchte mehrere Kategorien, welche über "str_replace" in die jeweilige ID umgewandelt werden als Kategorie für ein neuen Post setzen.

    Das Problem ist, dass wenn ich die Variable benutze, wird nur die erste ID verwendet, und nur die erste Kategorie gesetzt. (hoffenlich versteht ihr, was ich meine)



    Hier der Code, welcher funktioniert:

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

    Es Funktioniert wie gewollt, "Action (id 24), Abenteuer(id 25), Sci-Fi(id 42)" werden als Kategorie gesetzt.


    Nur, sobald ich die Variable verwenden will, welche "24, 25, 42" ausgibt, wird nur die ID 24 (Aktion) als Kategorie gesetzt. Also nur die erste ID aus der Variable.


    Hier meine Umsetzung:

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


    Vielen dank schonmal im vorraus.


    Lg
     
  2. pixselig

    pixselig Well-Known Member

    Registriert seit:
    8. Mai 2012
    Beiträge:
    2.301
    Zustimmungen:
    10
    Morgen
    Schaue dir mal das an http://php.net/manual/de/function.strtolower.php
    strtolower funktioniert nur mit Strings, d. h. das bei dir nur der erste Wert des Arrays abgearbeitet wird, und als String zurückgegeben wird.

    Aber überlege mal: du benötigst für wp_set_post_categories ein Array. Zusätzlich enthält deine variable $post_cat_id nach dem Ersetzen nur noch Zahlen, und selbige klein schreiben zu wollen ergibt irgendwie keinen Sinn.
    Mit anderen Worten: lass die Funktion strtolower einfach weg, dann sollte es auch funktionieren (vorausgesetzt $post_cat ist auch ein Array).
    LG, pixselig
     
    #2 pixselig, 25. Oktober 2014
    Zuletzt bearbeitet: 25. Oktober 2014
  3. playnic

    playnic Well-Known Member

    Registriert seit:
    25. April 2014
    Beiträge:
    55
    Zustimmungen:
    0
    Hallo,

    Vielen dank für die Info, aber es funktioniert leider nicht wirklich, bekomme immernoch nur die erste id als Kategorie eingetragen.

    Hier mein gekürzter Code:
    Den ersten Wert, Action (ID 11) setzt er als Kategorie aber den rest nicht.


    Habe zum Testen ein kleines Beispiel gemacht:

    Hier ist die Ausgabe "11, 10, 28", welche soweit Richtig ist, so wie es in meinem Fall auch sein sollte.


    Nur "wp_set_post_categories( $newpostid, $post_cat_id, false );" übernimmt diese Ausgabe wohl nicht richtig.




    Das ist echt zum Verzweifeln.. :(


    LG
     
  4. pixselig

    pixselig Well-Known Member

    Registriert seit:
    8. Mai 2012
    Beiträge:
    2.301
    Zustimmungen:
    10
    Guten Morgen
    Ich habe ja geschrieben, dass Voraussetzung ist, dass $post_cat ein Array ist, damit dann $post_cat_id auch ein Array ist.
    Bei dir ist das aber ein String, ergo ist $post_cat_id auch ein String, dass kannst du übrigens auch schön aber echo Ausgabe derselben sehen - > wäre die ein Array würdest du als Ausgabe nur "Array" und keine Werte bekommen.
    Also, du musst jetzt noch $post_cat ODER $post_cat_id in ein Array umwandeln, in PHP gibt es dafür die Funktion explode - > http://php.net/manual/de/function.explode.php
    LG, pixselig
     
  5. playnic

    playnic Well-Known Member

    Registriert seit:
    25. April 2014
    Beiträge:
    55
    Zustimmungen:
    0
    Hallo,

    Super, vielen dank es hat geklappt :)

    Habe aber noch eine Sache, ich möchte von den gesetzten Kategorien, die 1. Kategorie mit link ausgeben.


    Hier der Code der so funktioniert, aber alle gesetzten Kategorien ausgibt:


    lg
     
  6. pixselig

    pixselig Well-Known Member

    Registriert seit:
    8. Mai 2012
    Beiträge:
    2.301
    Zustimmungen:
    10
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    LG, pixselig
     
    #6 pixselig, 28. Oktober 2014
    Zuletzt bearbeitet: 28. Oktober 2014
  7. playnic

    playnic Well-Known Member

    Registriert seit:
    25. April 2014
    Beiträge:
    55
    Zustimmungen:
    0
    Hallo,

    Leider gibt es mir nur die ID der Kategorie aus (kein Link).

    lg
     
  8. pixselig

    pixselig Well-Known Member

    Registriert seit:
    8. Mai 2012
    Beiträge:
    2.301
    Zustimmungen:
    10
    Wenn du dir $category_url per echo ausgeben lässt bekommst du die ID?
     
  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