仅将“the_content”中的单词替换为index.php

时间:2020-06-30 作者:Carje

我有一些带有视频标签的帖子,其中包含自动播放(当你访问帖子页面时,它们应该自动播放)。

我正在使用the_content 在索引页上显示这些视频。

问题是,当您访问主页时,所有视频都会开始播放。

我已使用以下功能将其删除:

function replace_ap($text){
    $replace = array(
        \'autoplay=""\' => \'\'
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}
 
add_filter(\'the_content\', \'replace_ap\');
但现在;“自动播放”;属性也将从帖子页面中删除。

如何仅从索引中删除它?

我的想法是创建一个获取内容的函数,并将过滤器添加到此函数中,然后从索引中调用它。php而不是;\\u内容“;,但我不知道怎么做,也不知道是否可能

非常感谢。

1 个回复
最合适的回答,由SO网友:mozboz 整理而成

这里几乎没有可能:

索引中的。您找到的phpthe_content() 并将其替换为:

$content = get_the_content( $more_link_text, $strip_teaser );
$content = apply_filters( \'the_content\', $content );
$content = str_replace( \']]>\', \']]>\', $content );

$replace = array(
  \'autoplay=""\' => \'\'
);

$text = str_replace(array_keys($replace), $replace, $text);
echo $text;
您是否尝试将这段代码放入索引中。php?也许你有它的功能。php,所以它将始终运行,但将其放在索引中。php可能会导致它只在那里应用

正如@honk31所说,您可以在函数中测试您所在的页面。如果您希望稍后在其他页面上应用此行为,这可能会很好。例如。

function replace_ap($text){
  if (is_home()) {
    $replace = array(
        \'autoplay=""\' => \'\'
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
  } else {
    return $text;
  }
}

add_filter(\'the_content\', \'replace_ap\');

相关推荐

子主题不覆盖父主题php文件

我不熟悉Wordpress和儿童主题的工作原理。我的子主题我正在尝试覆盖子目录中的两个文件。我复制了父文件并在子主题中编辑了它们,但更改不会反映在父主题中。我正在尝试更改功能图像大小的代码。我成功地在parent中更改了代码以测试它,并且它正常工作。但子主题并没有覆盖它。/public_html/wp-content/themes/sahifa/framework/functions/theme-functions.php /public_html/wp-content/themes/sa