如何删除具有变量的特定文本字符串 文档和函数参考

问题描述

我正在使用 wordpress 网站并想删除或替换一些文本。这是来自我无法更改输出插件内容(至少从我所有的尝试来看)。

以括号为例;

(文本:date1⁠–date2)

(文本:Feb-09-Feb-12)

这两个日期是可变的,因为它们会一直变化。有没有办法可以设置通配符来说明 data1 和 data2 中的任何内容,用 X 替换字符串 date1-date2 或完全删除整个字符串“(The Text: date1⁠–date2)”。

是否有可以添加到我的主题 function.PHP 文件中的函数

或者作为替代使用 css。此文本位于一个 div 中,我可以将其设置为 diaply:none 但在其中我需要另一个 div 来显示。我的想法是删除文本,如上所述。同样,这是来自插件内容,我无法更改输出(至少从我的所有尝试来看)。我尝试了可见性,但它留下了文本所在的空间。

如何在设置为 display:none 的 div 中显示某些内容

所以

<div style="display:none">

<div>

display something

</div>

</div>

感谢您的帮助

解决方法

您不能在设置为 sizeof 的元素中显示某些内容。您可以尝试将元素的 display: none; 设置为 0,然后使用 font-size 选择器将您的文本添加到 :after 并将 content 设置回可读的内容:

font-size
div { font-size: 0; }
div:after { font-size: 16px; content: "This Text is shown"; }

或者,这是一个有点“锤击苍蝇”的解决方案,但使用 template_redirect 钩子,您可以打开 Output Buffering 并在内容上运行 preg_replace()缓冲区,这是一种我喜欢称之为“运行时查找和替换”的技术。

<div>(The Text: date01-date02)</div>

文档和函数参考

功能 链接描述
add_action( 'template_redirect','global_find_replace',99 ); function global_find_replace(){ ob_start( function( $buffer ){ $text = 'Your Text Here'; $buffer = preg_replace('/\(The Text: .*\)/',$text,$buffer ); return $buffer; }); } Fires before determining which template to load.
template_redirect Perform a regular expression search and replace