2017-12-29 15 views
0

Ich versuche, ein Skript in Wordpress mit wp_insert_post() zu laden, aber sobald es auf den Server kommt, werden die Anführungszeichen in nur ein paar Stellen zu &#8221; geändert, was wahrscheinlich erklärt, warum ich nicht kann scheinen es zu funktionieren. Ich habe versucht, die sanitize() -Funktion zu verwenden, aber das vermasselt alles durch Einfügen von </p> Tags am Ende aller Zeilen, so dass es nicht wirklich eine Option ist.wp_insert_post() doppelte Anführungszeichen ändern

Ich lese hier Escape double quotes within double quotes, dass verkettete Strings (die ich verwende, sowie heredoc Strings) könnte die Ursache für das Problem sein, aber ich bin mir nicht sicher, wie genau das Problem zu lösen. Alle Vorschläge sind willkommen - leider ist das jQuery-Skript, das ich hochladen möchte, eine Galerie, die aus Bildern besteht, die von den Benutzern über WP-Contact7/Flamingo in Wordpress hochgeladen wurden.

Oder würde einfach entkommen alle Zitate arbeiten? Aber was ist mit Strings, die einfach verkettet werden müssen? Wie <img src="' . $someImgUrl . '...';?

Hier ist eine der vier ähnlich konstruierten Saiten, die ich lade ich attemptning zu ...

     $gallBd2A = <<< gallBd2A 
           </div><!-- id="rundgang"--> 

            <div id="gallKnopfeTeil"> 
             <input type="button" id="bildZuKnopf" name="1" class="gallKnopfe" value=" >>> " onClick="bildZu(this)"> 
             <input type="button" id="bildAbKnopf" name="1" class="gallKnopfe" value=" <<< " onClick="bildAb(this)"> 
            </div><!-- id="gallKnopfeTeil" --> 

           <script src='./jquery.js'> 
           </script> 


           <script> 
            function probeZufug(bd){ 
             var e = document.getElementById('probeKaste'); 
             e.innerHTML += "<br/>" + bd; 
            } 
           </script> 


           <script> 
             // if (plusZiff == 7) 
             // jzZiff < 6? jzZiff++: jzZiff=1; 
             // if (minderZiff == 0) { minderZiff = 6;} 
             // jzZiff > 1? jzZiff--: jzZiff=6; 

              // jQuery('#bild1').fadeOut(100); 
              jQuery('#bild2').fadeOut(100); 
              jQuery('#bild3').fadeOut(100); 
              jQuery('#bild4').fadeOut(100); 
              jQuery('#bild5').fadeOut(100); 
              jQuery('#bild6').fadeOut(100); 
              jQuery('#bild7').fadeOut(100); 
              jQuery('#bild8').fadeOut(100); 

             function bildZu(ds){ 
              var jzZiff = parseInt(ds.name); 
              var plusZiff = jzZiff+1; 

gallBd2A; 

Dann nach vier solcher Saiten, ich verketten sie mit:

$gzGallBd = $gallKaskBd . $gallBd1 . $gallBdM . $gallBd2A . $gallBd2B . $gallBd2C . $gallBd2D . $gallBd2L; 

Diese Saite ist dann zu einem Post-Objekt hinzugefügt, dessen Objektvariablen als Parameter des Post-Arrays an wp_insert_post() übergeben werden.

Das Skript funktioniert einwandfrei, wenn es auf der Seite zum Hochladen ausgegeben wird (als Check) und der hochgeladene Code funktioniert, wenn ich ihn auf eine lokale Seite kopiere und wieder einfüge, nicht in WordPress.

Aber im Wordpress-Post bekomme ich die Bilder nebeneinander, als ob kein jQuery-Skript sie versteckt hätte. Bis ich den Beitrag untersuche und klicke, um ihn im visuellen Modus zu speichern, an dem die Bilder wie vorgesehen gestapelt werden, aber ohne Schaltflächenfunktionen, da die onClick (..) -Funktion aus den Elementen <input type="button"...> verschwunden ist.

Bei Bedarf werde ich den vollständigen Code in Kürze veröffentlichen, jede Rückmeldung wird in der Zwischenzeit sehr, sehr willkommen sein.

Antwort

0

Verwenden Sie folgende Methode Post einzufügen:

$ user_id = get_current_user_id(); $ someImgUrl = "https://cdn.pixabay.com/photo/2016/03/26/13/09/organic-1280537_960_720.jpg"; $ new_post = array ( 'ID' => '', 'post_author' => $ user_id, 'post_category' => '', 'POST_CONTENT' => '', 'POST_TITLE' => ‚custom post ', ' post_status '=>' publish ' ); $ post_id = wp_insert_post ($ new_post);

Ich bekomme doppelte Anführungszeichen in meinem Beitrag Inhalt mit dieser Methode. Bitte erläutern Sie Ihre Frage, wenn Sie nicht arbeiten.

+0

Ja, ich bin mit wp_insert_post() und sonst alles Upload OK - post_title, post_status, der Rest des Inhalts, etc ... nur diese Animation erweist sich als knifflig. Keine Ahnung, warum nur bestimmte Anführungszeichen umgewandelt werden ??? – Hektor

+0

Ok ich sehe .. Sie haben ein Problem in jquery sript, d. H. OnClick Funktion funktioniert nicht. Teilen Sie Ihr Skript oder den Code, damit ich es testen kann. – TBI

+0

Danke für das Angebot, am Ende habe ich den Code so geändert, dass nur ein einfacher String mit Anführungszeichen verwendet wurde. Ich hatte auch ein Problem mit >>>, die anscheinend einige Tags innerhalb von WordPress * oder etwas * schlossen. Siehe die Antwort für weitere Erläuterungen. – Hektor

0

Nun, da meine ursprüngliche Frage bleibt unbeantwortet, werde ich die Lösung für alle mit dem gleichen Problem setzen:

ich den Original-Skript oben schrieb, alles in einfachen Anführungszeichen Strings mit Fluchten für jede setzen einfache Anführungszeichen und Verzicht auf die heredocs, da das schließende heredoc-Tag ganz am Anfang einer neuen Zeile stehen muss, was ein Problem sein kann oder auch nicht, wenn die Zeichenfolge weitergegeben wird.

Die volle jquery/JavaScript-Funktionalität wurde in einer eigenen Datei in Wordpress Js der Dateistruktur setzen und enthalten mit

function eigenSchrifte() { 
    wp_enqueue_script('schleicher1', get_template_directory_uri() . '/js/schleicher1.js', array('jquery'), '1.12.4', true); 
} 
add_action('wp_enqueue_scripts', 'eigenSchrifte'); 

Die CSS- spezifisch für die Galerie I in der single.php Seite Thema setzen gelandet da der Schieberegler nur bei einzelnen Posts angezeigt wird.

, dass der dynamisch generierten HTML mit den <img src="..."> Tags links, und den PHP-Skript die Galerie enthält nun nichts anderes als html, die sehr gut uploads zu bauen, wenn auch ohne >>> oder sogar &gt;&gt;&gt; wie die Schaltfläche Text.

Eine grobe Annäherung der endgültigen HTML-Konstruktion läuft wie so (nicht so aufschlussreich an sich, aber nützlich für den Vergleich mit dem ursprünglichen Versuch):

$galleryString1 = '<div id="carousel">'; 

$dynamicGalleryString = ''; 


foreach ($imageArray as $targetImage) { 
     $targetImage++; 
     $dynamicGalleryString .= find_and_copy_target_uploaded_image_returns_full_image_tag($targetImage, $newFolder); 

} // 


$galleryString2 =        
     '</div><!-- id="carousel"--> 

      <div id="galleryButtonDiv"> 
       <input type="button" id="nxPicButton" name="1" class="galleryButton" value=" ++ " onClick="nextPic(this)"> 
       <input type="button" id="prevPicButton" name="1" class="galleryButton" value=" -- " onClick="prevPic(this)"> 
      </div><!-- id="galleryButtonDiv" --> 
     '; 
Verwandte Themen