Kleines PHP Problem

  • Moin...

    ich stecke jetzt seit gut 2 Tagen fest, der Entwickler meines Themes hat lässt mich bei dem Problem auch im Stich. In PHP Boards kommen sie einem immer damit man solle lesen und verstehen lernen... das habe ich versucht und bin gescheitert aus diesem Grund habe ich einfach die Hoffnung dass mir hier einer helfen kann.

    Ich bin ziemlich sicher dass sich das für jemanden der die Logik hinter PHP komplett begreift eine 2 Minuten Sache ist...

    Ich habe ein Wordpress Plugin dass die URL eines Youtube Videos an ein benutzerdefiniertes Feld in Wordpress weitergeben soll welches vom Theme unterstützt wird, soweit so gut.

    Zum Verständis, cbc_compatibility_url_meta liefert in meinem Beispiel die Youtube URL

    Code
    https://www.youtube.com/watch?v=aqz-KE-bpKQ

    So wird die URL direkt in td_post_video eintragen.

    Code
    function post_yt_url_meta(){
    	return 'td_post_video';
    }
    
    
    add_filter( 'cbc_compatibility_url_meta', 'post_yt_url_meta' );

    Mit diesem Code in der functions.php im Child Theme wird die URL des Youtube Videos in die Tabelle td_post_video eingetragen. Soweit so gut...allerdings erwartet td_post_video nicht nur die Youtube URL. Ich habe manuell einen Eintrag angelegt und in die Datenbank geschaut wie genau das Video gespeichert wird...das ganze muss so in die Datenbank :


    Code
    a:1:{s:8:"td_video";s:43:"https://www.youtube.com/watch?v=aqz-KE-bpKQ";}


    Falls jemand ne Idee hat wäre ich sehr dankbar.

  • Da müsstest Du vielleicht den Code des Plugins mit posten.
    Entweder hat das Plugin eine Funktion, die aus einem reinen youtube-Link das macht, was es braucht oder Du musst solch eine Funktion ergänzen.

    Mit dem Code, den bisher hier gepostet hast, komme ich zwar z.B. hierhin oder hierhin, aber ab da fängt dann das rumraten an, was Du denn genau brauchen könntest ;)

  • Da müsstest Du vielleicht den Code des Plugins mit posten.
    Entweder hat das Plugin eine Funktion, die aus einem reinen youtube-Link das macht, was es braucht oder Du musst solch eine Funktion ergänzen.

    Mit dem Code, den bisher hier gepostet hast, komme ich zwar z.B. hierhin oder hierhin, aber ab da fängt dann das rumraten an, was Du denn genau brauchen könntest ;)

    Hey, der zweite Link den du gepostet hast ist das Plugin... vielleicht hab ich mich auch einfach komplett falsch ausgedrückt... das erklärt eben auch mein Verständnisproblem :D

    So wie ich es oben gepostet habe :

    Code
    function post_yt_url_meta(){
    	return 'td_post_video';
    }
    add_filter( 'cbc_compatibility_url_meta', 'post_yt_url_meta' );

    trägt er mir wie beschrieben nur die URL in td_post_video ein. Also cbc_compatibility_url_meta gibt die Youtube URL an td_post_video weiter.

    In td_post_video sollte aber :


    Code
    a:1:{s:8:"td_video";s:43:"youtube_url";}

    stehen... ich muss also einfach nur die komische Zeichenfolge da reinbekommen...mit youtube_url. Bei mir scheitert es einfach daran dass ich nicht weiß wie ich den Wert an td_post_video weiterreichen kann .

    Vielleicht rede ich auch komplett an dem vorbei was du von mir wissen willst :D

  • Ich glaube, das Problem ist eher, dass ich die Plugins nicht kenne.
    Hast Du denn versucht direkt beim Plugin-Ersteller zu fragen? Das wird wahrscheinlich schneller zum Ziel führen. Hier vielleicht?

    Ansonsten:
    Was ist denn "td_post_video"? Das scheint nicht von diesem Plugin zu sein, sondern von woanders.
    Die Frage ist halt, ob um die YouTube-URL immer das gleiche steht oder ob die 1, die 8, die 43 irgendwas bedeuten.

  • td_post_video ist das custom field vom Theme wo das Plugin die URL eintragen soll.

    Beim Plugin Entwickler bekomme ich nen link zu ner uralt Version des themes (4 jahre alt) wo das vom theme noch anders gehandhabt wurde.

    Bei den TestVideos die ich von Hand in die Datenbank gepackt habe war dieser Wert rund um die URL immer der selbe.

  • Mit dem Plugin kenne ich mich nicht aus, bzw. mit Pluginentwicklung für WP auch nur recht wenig.
    Aber die "komische Zeichenfolge" ist das Ergebnis von http://php.net/manual/de/function.serialize.php. So sehen serialisierte Objekte in php aus.

    Lg Kasalop

    EDIT: Zur Erklärung: Der String bedeutet: Es ist ein array der Länge (Anzahl der Elemente) 1. In den geschweiften Klammern stehen nun die Array einträge und zwar erst der Key und dann der Wert. Der Key ist ein string, der Länge 8 und zwar td_video... etc :)

  • Die Dokumentation ist etwas dürftig, aber ich glaube er hat keinen Hook zur Manipulation der Eingangsdaten bereitgestellt. Du könntest höchstens hingehen und in der functions.php des Plugins mal schauen wo die Daten (Die YT Links) verarbeitet werden. Und dann diese durch serialize vor der Weiterverarbeitung verändern. Mehr kann ich dazu nicht sagen, da ich mir nicht das Plugin kaufen werde nur um hier zu helfen ;P

    Lg Kasalop

  • Ich kenne da so nen Entwickler der vermutlich nicht damit einverstanden ist wenn ich euch das Plugin hier poste...^^

    Edit: ich hatte aber auch wirklich erwartet dass sich das leichter lösen lässt.

    Einmal editiert, zuletzt von Nevrion (27. Juli 2018 um 15:38)

Jetzt mitmachen!

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