使用substr_replace发布内容操作

时间:2017-06-18 17:07:15

标签: php wordpress post replace

美好的一天EB! 我是一个php新手,我遇到了一些简单的任务。

我想在第5个fullstop之后插入一个字符串到post内容。但是,我仍然坚持编写替换的第一步。之后,我将向$ pos添加计数。 我也尝试使用substr_replace()。

这是我的主题的function.php文件中的代码。

function replace_content($content)
{
    $oldstr = $content;
    $str_to_insert = "tst";
    $pos = 30;
    $new_content = substr($oldstr, 0, $pos) . $str_to_insert . substr($oldstr, $pos);


    return $new_content;
}
add_filter('the_content','replace_content');

它没有返回预期的结果。 感谢您的建议和帮助。

2 个答案:

答案 0 :(得分:1)

我不确定,是否存在任何内置方法。但是,您的问题有解决方法

您可以使用explode并循环播放

$array = array(".",$content); //split by fullstop and store it in array
$new_content = ""
$str_to_insert = "tst";
$count=1

foreach($array as $value) { // loop through the array now
  if($count==5)
   {
   $new_content = $new_content.$value.$str_to_insert."."; // insert string on fifth occurrence 
   }
  else
  {
  $new_content = $new_content.$value."."; // otherwise just append string as it was
  }
 $count++;
}

答案 1 :(得分:1)

你可以使用explode函数在第五次'。'之后添加字符串。例如,您可以使用以下函数:

function replace_content($content)
{
    $str_to_insert = "tst";
    $pos = 5;

    $data = explode(".", $content);
    $data[5] = $str_to_insert . " " . $data[5];
    $new_content = implode(".", $data);

    return $new_content;
}