wp_insert_post()改变双引号

问题描述 投票:0回答:2

我正在尝试使用wp_insert_post()将脚本上传到Wordpress但是一旦它到达服务器,引号就会在几个地方更改为&#8221;,这可能解释了为什么我似乎无法让它工作。我已经尝试过使用sanitize()函数,但是通过在所有行的末尾插入</p>标记来解决所有问题,所以这不是一个真正的选择。

我在这里读到Escape double quotes within double quotes连接字符串(我使用的,以及heredoc字符串)可能是问题的原因,但我不确定如何解决问题。欢迎所有建议 - 不幸的是,我试图上传的jQuery脚本是一个由用户通过WP-Contact7 / Flamingo上传到Wordpress的图像构建的图库。

或者只是逃避所有报价的工作?但是那些只需连接的字符串呢?像<img src="' . $someImgUrl . '...';

这是我试图上传的四个类似构造的字符串之一...

                        $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;

然后在四个这样的字符串之后,我将它们连接起来:

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

然后将此字符串添加到post对象,该对象的对象变量作为post-array的参数传递给wp_insert_post()。

当用于上传它的页面(作为检查)输出时,脚本工作得非常好,如果我将其复制并粘贴回不在wordpress内的本地页面,则上传的代码可以正常工作。

但是在wordpress帖子中我并排获得了图片,好像没有jQuery脚本隐藏它们。直到我调查帖子并单击以在可视模式下保存它,此时图像按预期堆叠,但没有任何按钮功能,因为onClick(..)函数已从<input type="button"...>元素中消失。

如果有必要,我会尽快发布完整的代码,同时他们将非常非常欢迎任何反馈。

jquery wordpress upload
2个回答
0
投票

您是否使用以下方法插入帖子:

$ 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'=>'自定义帖子','post_status' >'发布'); $ post_id = wp_insert_post($ new_post);

我使用这种方法在我的帖子内容中得到双引号。如果没有工作,请详细说明你的问题。


0
投票

好吧,由于我的原始问题没有得到解决,我会为遇到同样问题的人提出解决方案:

我重写了上面的原始脚本,将所有内容放在带有转义的单引号字符串中,用于任何单引号并省去heredocs,因为关闭的heredoc标记需要在换行符的开头,这可能是也可能不是问题当字符串传递时。

完整的jquery / javascript功能放在wordpress的文件结构中的自己的.js文件中,并附带

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' );

特定于图库的.css我最终放入了主题的single.php页面,因为滑块只会显示在各个帖子上。

这留下了动态生成的html与<img src="...">标签,并建立画廊的PHP脚本现在只包含html,上传非常好,虽然没有>>>甚至&gt;&gt;&gt;作为按钮文本。

最终html构造的粗略近似就像这样运行(本身并不那么具有启发性,但与原始尝试相比是有用的):

$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" -->
        ';
© www.soinside.com 2019 - 2024. All rights reserved.