【问题标题】:Wordpress get_permalink rewriteWordpress get_permalink 重写
【发布时间】:2014-03-02 07:28:06
【问题描述】:

有没有办法重新生成永久链接的工作方式?我的意思是博客中的任何地方(所有使用 get_permalink() 的插件和东西)。

我想将http://domain.com/wordpress/post_type/post之类的所有链接替换为http://domain.com/post_type/post

重写规则和东西是由htaccess完成的,所以如果我访问http://domain.com/post_type/post表单地址栏它可以工作,所以我只需要改变get_permalink()的方式。

注意:我无法将文件移到 /wordpress/ 文件夹之外,因为在其根目录中还有另一个 html 模板。

注 2:我尝试了一些 301 重定向与正则表达式,我得到 重定向循环。因此,如果有办法用 htaccess 更改它,那就太好了

非常感谢

【问题讨论】:

  • 也许这会对你有所帮助...http://shibashake.com/wordpress-theme/wordpress-permalink-add

标签: php wordpress .htaccess mod-rewrite url-redirection


【解决方案1】:

我终于找到了。如果您正在检查核心,您将看到所有过滤器https://core.trac.wordpress.org/browser/tags/3.5/wp-includes/link-template.php。对于自定义帖子类型,它是 post_type_link 过滤器,对于帖子,它是 post_link。如果您要阅读代码,则有很多有用的东西。我的问题的解决方案是:

define( 'SERVER_ROOT', 'http://' . $_SERVER['SERVER_NAME'] );
define( 'INSTALL_URL', site_url() );

add_filter( 'post_type_link', 'pleasure_post_links', 99 );
function pleasure_post_links( $permalink ) {
  return str_replace( INSTALL_URL , SERVER_ROOT, $permalink);
}

上面的代码将使http://domain.com/wordpress_folder/custom_post_type链接到http://domain.com/custom_post_type

你也可能在你的根 .htaccess 中需要这个(在根文件夹中,而不是 wordpress 文件夹中)

RewriteEngine On

RewriteRule   ^blog([^'"]+)?$  ./wordpress_folder/blog/$1 

其中 blog 是自定义帖子类型名称,wordpress_folder 是 wordpress 的安装文件夹

我希望它对某人有用,我几乎花了两天时间寻找解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2020-02-11
    • 2012-10-25
    • 2012-10-10
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多