Update content on the fly

时间:2014-07-26 作者:user31445

我正在为每个width="*" 宽度=“730px”且每height="*"高度=“846”

function replace_content_on_the_fly($text){
    $replace = array(
        // \'words to find\' => \'replace with this\'
        \'width="*"\' => \'width="730px"\',
        \'height="*"\' => \'height="486px"\'

    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}
add_filter(\'the_content\', \'replace_content_on_the_fly\');
add_filter(\'the_excerpt\', \'replace_content_on_the_fly\');
然而,它似乎不起作用,有人知道如何修复它吗?

1 个回复
SO网友:Rajeev Vyas

如果您试图替换width=“”where“”表示空,则在使用时不需要使用“*”str_replace, 像str_replace 不支持正则表达式。在这种情况下,您的功能如下:

function replace_content_on_the_fly($text){
    $replace = array(
        // \'words to find\' => \'replace with this\'
        \'width=""\' => \'width="730px"\',
        \'height=""\' => \'height="486px"\'

    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
} 
如果要替换“”之间的所有宽度高度,则需要使用preg_replace

function replace_content_on_the_fly($text){
      $newWidth = 730;
          $newHeight = 486;        

$text = preg_replace(
   array(\'/width="\\d+"/i\', \'/height="\\d+"/i\'),
   array(sprintf(\'width="%d"\', $newWidth), sprintf(\'height="%d"\', $newHeight)),
   $text);

        return $text;
    } 

结束

相关推荐

在_Content()中添加快捷代码

我正在尝试在\\u content()的文本中添加一个快捷码。可以将其添加到开头或结尾,但我不知道如何在200个字符之后显示出来。下面是我需要添加的短代码:[相关职位]我试过了this 但这并不适合我,因为它用一个短代码取代了每一个巴拉圭。