我有一个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 过滤器不适合这项工作,甚至我需要在这里采取行动。但我是菜鸟找到合适的。
感谢您的帮助
我认为更好的解决方案是修改.htaccess
文件以删除.html扩展名。这样,您就不必触摸代码。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]
源
编辑:这是我的解决方案的类似堆栈溢出帖子。
尝试使用"the_content"过滤器代替 ot gettext