我在一家建筑公司工作,我们的项目名称大致如下:house|something, bridge|somewhere, building|whatever.
现在,当我想添加一个名为这样的新项目时,WordPress会自动将其转换为housesomething, bridgesomewhere 把它当作子弹。我更喜欢保留某种分隔符,例如。house-something, bridge-somewhere 相反
那么,如何让WordPress转换| 到- 而不是Empty String ("")? 很明显,我厌倦了一直手工操作。
在我看来,这很容易做到。如果一个人知道在哪里查找(在WP核心或任何地方),只需要简单的搜索和替换之类的东西,但我根本不知道在哪里查找,或者执行什么代码。
最合适的回答,由SO网友:cjbj 整理而成
当WordPressinserts a post, 它通过一个名为sanitize_title 去拿子弹。默认情况下,有一个名为santize_title_with_dashes 附加到此过滤器,优先级为10。此函数只是将|. 如果它被空格包围,则这些空格将转换为连字符。
因此,您的任务是在默认挂钩之前(例如,优先级9)在同一挂钩上运行筛选器,并替换| 具有- 在它被剥去之前。像这样:
add_filter( \'sanitize_title\', function ( $title ) {
return str_replace( \'|\', \'-\', $title );
}, 9 );