部署本地WordPress站点

时间:2019-12-16 作者:K. Shores

我正在为客户建立WordPress网站。我在本地部署了Apache和MySQL,并手动安装了WordPress。页面之间的所有链接都在本地使用绝对URL(例如localhost:8080/index.php/a-page)。

当我开始部署此站点时,我是否必须手动更新每个链接?如果是这样的话,有没有一种方法来开发网站,使链接相对于基本URL?

1 个回复
SO网友:Raba

WordPress generate urls dynamically, 使用数据库中的数据。It is up to themes/plugins to use wordpress functionalities to generate urls instead of hardcoding them.

Wordpress has a series of functions that are supposed to be used when dealing with urls, 其中一些是:

  • get_template_directory_url (主题url)
  • plugin_dir_url (插件url)
  • get_stylesheet_directory_url (样式表url)
例如,当您放置<a href="">Menu Item</a> 在主题模板中href 锚的属性shoudn\'t have a hardcoded url 喜欢localhost:8080/link-to/the-post, 相反you should use get_post_permalink() (如果我们处理的是帖子),则返回帖子的相对url。

如果必须使用位于my-theme/assets/img/my-img.png, 你可以创作这个图像src 使用get_template_directory_url, 不要硬编码文件夹主题的url:

<img src="<?php echo get_template_directory_url(); ?>/assets/img/my-img.png"/>

The same goes to files paths. 如果站点从服务器移出,硬编码路径将失败。Wordpress provides functions like

  • get_template_directory (主题路径)plugin_dir_path (插件路径)get_stylesheet_directory (样式表路径)Some urls might end up hardcoded in the database. 这通常发生在POST内容和POST元数据中的URL上。

    替换数据库中URL的最简单方法是使用插件。必要时,我会使用Better Search Replace 插件。它允许您在wordpress表中搜索和替换url。

    search replace

    search for 您的旧url,以及replace with 新的一个。选择每个表,并替换GUID(您可以了解什么是GUI以及何时替换它们here)