在生成固定链接之前是否在标题中添加快捷代码

时间:2017-06-15 作者:jave.web

我需要在标题中有一个特殊的行为,所以我在那里使用短代码,显示很好(我只使用过滤器the_title&;single_post_title), 然而,当生成永久链接时,短代码保持不变(它只是去掉了[ ] )...

我需要以某种方式更改源标题before 该链接生成于I don\'t want to do/recreate the permalink logic again.

注意:当我直接使用HTML而不是短代码时,得到了期望的结果:)(HTML被剥离,但其内部内容被保留)。然而,对于常规用户来说,这是不可接受的。

2 个回复
最合适的回答,由SO网友:jave.web 整理而成

最近我发现,链接是通过get_sample_permalink() 其中使用sanitize_title() ... 还有一个过滤器“sanitize_title“-提供了大量有用的信息:)

add_filter( \'sanitize_title\', function( $title, $raw_title, $context ){
  $title = do_shortcode($title);

  return $title; //filter => must return!
}, 1, 3 ); //top priority (1), 3 arguments accepted
从我看来sanitize_title() 基本上为ID生成准备标题-删除html、php和重音符号。

Note: $title 提供给过滤器已经经历了删除重音的过程-如果您想要原始的-只需使用$raw_title 作为源;)

SO网友:WebElaine

您应该能够使用插件并将您的短代码设置为停止字。搜索一个“SEO slugs”插件,它可以让你添加自己的“停止词”,你应该会发现几种可能性。

从这里开始,您的短代码中的任何内容都需要添加为停止词,而不会包含在最终发布的slug中。

您可以检查这些插件的源代码,并在您自己的插件中加入类似的内容-最好在您自己的插件中包含此类代码,这样您自己的代码可以防止冲突,但请确保对其进行名称命名,以便最终用户在安装这些SEO Slug插件时不会导致冲突。

结束

相关推荐

Pretty permalinks (again)

我正试图在我的WordPress站点中启用永久链接。但每次我尝试更改为除默认链接外的任何永久链接选项时,帖子的链接都会转到404。如果我把它改回来,它就正常工作了。我正在Ubuntu服务器14.04上使用WP 4.2.4和Apache 2.4.7。我做过的事情:我有mod_rewrite 在Apache中启用</我有选择+FollowSymLinks 和AllowOverride All 和RewriteEngine On 在Apache服务器的配置文件中</我已给予书面许可.htaccess