WordPress教程

WordPress修改数据库返回数据

阿里云

有个简单需求,就是 WordPress 多个网站同步数据的情况下,根据网站域名的不同,修改数据库返回的数据。实现这个的需求就是在当前 WordPress 主题下的 functions.php 中实现 the_post 拦截函数,在数据库返回的数之后,进行替换。

例子如下:

  1. function replace_serv_domain($post) {
  2.     $local_addr = $_SERVER['SERVER_ADDR'];
  3.     if ('10.105.114.251' == $local_addr) { 
  4.         // 替换服务器的访问地址信息
  5.         $post->post_content = str_ireplace('mobibrw.com', 'miniab.com', $post->post_content);
  6.     }
  7.     return $post;
  8. }
  9. add_action('the_post', 'replace_serv_domain');
也想出现在这里?联系我们
创客主机

这个替换过程只能针对没有使用 WP Super Cache 进行缓存的情况,如果已经使用 WP Super Cache 进行缓存,那么很可能导致没有及时生效。

如果只是需要替换域名,那么只需要在 wp-config.php 中定义 WP_HOME/WP_SITEURL 两个变量即可实现域名覆盖。

示例参考:

  1. $HTTP_TYPE = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';   
  2.  
  3. $HOME = $HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress'; #获取当前访问的域名
  4. $SIT_URL = $HTTP_TYPE.$_SERVER['HTTP_HOST'].'/wordpress';
  5.  
  6. #$HOME = $HTTP_TYPE.$_SERVER['HTTP_HOST'];
  7. #$SIT_URL = $HTTP_TYPE.$_SERVER['HTTP_HOST'];	
  8.  
  9. define('WP_HOME', $HOME);
  10. define('WP_SITEURL', $SIT_URL);

WordPress 修改数据库返回数据

已有 232 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!