我正在尝试使用wp_insert_post()将脚本上传到Wordpress但是一旦它到达服务器,引号就会在几个地方更改为”
,这可能解释了为什么我似乎无法让它工作。我已经尝试过使用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"...>
元素中消失。 / p>
如果有必要,我会尽快发布完整的代码,同时提供的任何反馈将非常非常受欢迎。
答案 0 :(得分: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'=&gt; ', 'post_author'=&gt; $ USER_ID, 'post_category'=&gt; ', 'post_content'=&gt; ', 'post_title'=&gt; '自定义帖子', 'post_status'=&gt; '发布' ); $ post_id = wp_insert_post($ new_post);
我使用此方法在帖子内容中获得双引号。如果没有工作,请详细说明你的问题。
答案 1 :(得分: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,上传效果非常好,尽管没有>>>
甚至{{1 }按钮文字。
最终html构造的粗略近似运行如此(本身并不那么具有启发性,但与原始尝试相比很有用):
>>>