wp_insert_post()改变双引号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wp_insert_post()改变双引号相关的知识,希望对你有一定的参考价值。
我正在尝试使用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"...>
元素中消失。
如果有必要,我会尽快发布完整的代码,同时他们将非常非常欢迎任何反馈。
您是否使用以下方法插入帖子:
$ 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);
我使用这种方法在我的帖子内容中得到双引号。如果没有工作,请详细说明你的问题。
好吧,由于我的原始问题没有得到解决,我会为遇到同样问题的人提出解决方案:
我重写了上面的原始脚本,将所有内容放在带有转义的单引号字符串中,用于任何单引号并省去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,上传非常好,虽然没有>>>
甚至>>>
作为按钮文本。
最终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" -->
';
以上是关于wp_insert_post()改变双引号的主要内容,如果未能解决你的问题,请参考以下文章
VS Code Auto Indent / Code Formatting 将单引号改为双引号
后端向前端页面发送变量的方法,可以包含特殊字符(如英文双引号)