【问题标题】:replacing ".html" inside a href with Wordpress用 Wordpress 替换 href 中的“.html”
【发布时间】:2018-05-06 18:29:36
【问题描述】:

我有一个 wordpress 网站,里面有很多链接。每个链接都有扩展名“.html”(如<a href="https://example.com/about.html>)。

我喜欢添加一个过滤器,在所有页面上搜索“.html”并将其替换为“”(<a href="https://example.com/about>)。

我已尝试使用 str_ireplace 和 gettext 过滤器来完成此操作。

function kb_rename_links( $kb_rename_item ) 
{  
$kb_rename_item = str_ireplace( '.html', '', $kb_rename_item );

return $kb_rename_item;
}

add_filter( 'gettext', 'kb_rename_links' );

这个片段不起作用(它适用于纯文本)。我认为 gettext 过滤器不适合这项工作,甚至我需要在这里采取行动。但是我很难找到合适的。

感谢您的帮助

【问题讨论】:

    标签: php wordpress str-replace


    【解决方案1】:

    我认为更好的解决方案是修改 .htaccess 文件以删除 .html 扩展名。这样你就完全不用接触代码了。

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.html [NC,L]
    

    source

    编辑:Here 是与我的解决方案类似的 stackoverflow 帖子。

    【讨论】:

    • 是的,我现在使用此解决方法,但我不喜欢此解决方案,因为我也喜欢在找到解决方案后立即更改 .img 标记内的字符串。 T
    【解决方案2】:

    尝试使用“the_content”过滤器而不是 gettext

    【讨论】:

    • 忘了说链接是硬编码页面模板的一部分。内容实际上是空的。
    • 如果是,为什么不在模板文件中搜索替换?
    猜你喜欢
    • 2016-05-03
    • 2021-03-21
    • 1970-01-01
    • 2014-05-19
    • 2019-08-10
    • 2022-01-06
    • 1970-01-01
    • 2011-03-11
    • 2012-10-19
    相关资源
    最近更新 更多