WordPress知识笔记

发布于 2023-02-17  520 次阅读


通过简码显示访客IP地址

  1. 打开主题编辑器

  2. 选择function.php文件

  3. 插入以下代码

    // 获取访客IP地址
    function get_the_user_ip() {
    if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
    //check ip from share internet
    $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
    //to check ip is pass from proxy
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
    $ip = $_SERVER['REMOTE_ADDR'];
    }
    return apply_filters( 'wpb_get_ip', $ip );
    }
    add_shortcode('show_ip', 'get_the_user_ip');
  4. 在需要的地方添加“简码”模块,输入\18.221.73.212即可

显示网站运行时间

  1. 打开主题编辑器
  2. 选择function.php文件
  3. 插入以下代码
  // 运行时间
  // 设置时区
  date_default_timezone_set('Asia/Shanghai');
  /**
  * 秒转时间,格式 年 月 日 时 分 秒
  *
  * @author Roogle
  * @return html
  */
  function getBuildTime(){
  // 在下面按格式输入本站创建的时间
  $site_create_time = strtotime('2020-02-28 08:00:00');
  $time = time() - $site_create_time;
  if(is_numeric($time)){
  $value = array(
  years => 0, days => 0, hours => 0,
  minutes => 0, seconds => 0,
  );
  if($time >= 31556926){
  $value[years] = floor($time/31556926);
  $time = ($time%31556926);
  }
  if($time >= 86400){
  $value[days] = floor($time/86400);
  $time = ($time%86400);
  }
  if($time >= 3600){
  $value[hours] = floor($time/3600);
  $time = ($time%3600);
  }
  if($time >= 60){
  $value[minutes] = floor($time/60);
  $time = ($time%60);
  }
  $value[seconds] = floor($time);
  echo '<span class=btime>'.$value['years'].'年'.$value['days'].'天'.$value['hours'].'小时'.$value['minutes'].'分</span>';
  }else{
  echo '';
  }
  }
  1. 调用:
    <?php getBuildTime(); ?>

感谢小林博客的知识分享

通过代码获取并显示访客IP和城市

  1. 用主题文件编辑器打开function.php
  2. 在空行处插入以下代码
//显示访客所在地(php)
function nxsg_getip(){
  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
  $ip = getenv("HTTP_CLIENT_IP");
  } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
  $ip = getenv("HTTP_X_FORWARDED_FOR");
  } else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
  $ip = getenv("REMOTE_ADDR");
  } else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] &&   strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
  $ip = $_SERVER['REMOTE_ADDR'];
} else {
  $ip = "unknown";
}
  return $ip;
}
function nxsg_getLocation($ip= ''){
empty($ip) && $ip = nxsg_getip();
if($ip=="127.0.0.1") return "本机地址";
$api = "https://api.vore.top/api/IPdata?ip=$ip";
$json = file_get_contents($api);
$arr = json_decode($json,true);
$city= $arr["ipdata"]["info2"];
$province = $arr["ipdata"]["info1"];
if($city ==""){
return $province;
}
return $city;
}
  1. 调用:
    显示IP地址
    <?php echo nxsg_getip() ?>
    显示城市
    <?php echo nxsg_getLocation() ?>

解决多域名绑定同一个wordpress后部分文件无法加载的情况

修改wp_config.php文件,插入以下代码
define( \'WP_CONTENT_URL\', \'/wp-content\');

显示网页加载时间 function.php文件插入以下代码

//页面加载时间自动检测 function wp_page_speed() { date_default_timezone_set( get_option( \'timezone_string\' ) ); $content .= \'页面加载用时\'; $content .= timer_stop( $display = 0, $precision = 2 ); $content .= \' s\'; echo $content; }

调用:页面加载用时timer_stop(1); ? s

感谢回忆大大的分享

文章按“最后修改时间”排序显示

修改index.php文件,在<?php if ( have_posts() ) : ?>前插入<?php query_posts('orderby=modified'); ?>

解决更改固定链接后无法打开文章的问题

在站点的NGINX配置文件里加上以下内容

location /
{
try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

WordPress网站迁移

  • 使用插件一站式WP迁移,作者是ServMask,两边都装这个插件,然后导出+导入即可,真心赞。如果导出的文件过大,不能导入,可以编辑站点目录下的.htaccess文件,增加以下代码:

    php_value upload_max_filesize 128M
    php_value post_max_size 128M
    php_value memory_limit 256M
    php_value max_execution_time 300
    php_value max_input_time 300
  • 自行导出导入数据库和网站目录,不太建议,虽然理论上可行,但是遇到问题可能性也挺大的