我正在使用IFTTT和Wordpress,因此每次我在Instagram上创建帖子时,该配方都会在Wordpress上创建一个帖子。
IFTTT创建的代码:
<div>
<img src='https://scontent.cdninstagram.com/t51.2885-15/sh0.08/e35/12724750_1719815604930604_2078818546_n.jpg?ig_cache_key=MTE5MTQxNTkwMjE5ODM2NzYwOQ%3D%3D.2' style='max-width:600px;' /><br/>
<div>
<a href="http://ift.tt/1XKFC24Q7" target="_blank">See</a>
</div>
</div>
出于某种原因,我用来添加此图像的插件就像特色图片一样,不喜欢图像的src的这一端,所以我需要删除&#34之后的代码; .JPG&#34; :
&#34; ig_cache_key = MTE5MTQxNTkwMjE5ODM2NzYwOQ%3D%3D.2&#34;。)
我找到了一个Wordpress过滤器,可以在保存之前修改帖子。
所以我尝试了这段代码,但这会删除?
add_filter( 'wp_insert_post_data' , __NAMESPACE__ . '\\filter_post_data' , '99', 2 );
function filter_post_data( $data , $postarr ) {
$data['post_content'] = substr( $data['post_content'], 0, strpos( $data['post_content'], "?")); delete all after ?
return $data;
}
如何在问号(?)之后删除所有内容,但在img标记的src中只删除 ONLY ?
这是$data['post_content']
的参考:
https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data
答案 0 :(得分:0)
如果您要替换特定HTML中的内容,请尝试以下操作:
PackageManager
祝你好运
答案 1 :(得分:0)
这是我编写的一个脚本。
$string = "img src='https://scontent.cdninstagram.com/t51.2885-15/sh0.08/e35/12724750_1719815604930604_2078818546_n.jpg?ig_cache_key=MTE5MTQxNTkwMjE5ODM2NzYwOQ%3D%3D.2' style='max-width:600px;' /><br/>";
$string2 = "asd";
$count = 0;
for($i=0;$i<strlen($string);$i++)
{
if($string[$i]=='?')
{
while($string[$i]!='\'')
$i++;
}
$string2[$count] = $string[$i];
$count++;
}
echo $string2;
它基本上会将一个字符串的内容复制到另一个字符串中,但会在?
之后跳过任何内容,直到找到'
由你来实现它,应该很简单。我发布的代码输出
img src='https://scontent.cdninstagram.com/t51.2885-15/sh0.08/e35/12724750_1719815604930604_2078818546_n.jpg' style='max-width:600px;' />
请记住,此代码仅适用于此任务,它只能在此处使用,请小心使用它,因为它可能会产生意外结果,例如,如果您在内容中有其他问号。
然而,在链接变为HTML之前编辑链接要容易得多,如果它是一个获取链接的插件,那就不应该很难了。
答案 2 :(得分:0)
谢谢大家,我用这段代码解决了:
add_filter( 'wp_insert_post_data' , __NAMESPACE__ . '\\filter_post_data' , '99', 2 );
function filter_post_data( $data , $postarr ) {
$data['post_content'] = preg_replace('/(\?.*)(?=\' style)/','', $data['post_content']);
return $data;
}
但现在我还有另外一个问题,如果类别为“Instagram”,我该怎么说才能应用此过滤器 ONLY ?
这种情况似乎不起作用:
add_filter( 'wp_insert_post_data' , __NAMESPACE__ . '\\filter_post_data' , '99', 2 );
function filter_post_data( $data , $postarr ) {
if ( in_category('instagram') ) {
$data['post_content'] = preg_replace('/(\?.*)(?=\' style)/','', $data['post_content']);
return $data;
}
}
感谢