问题描述
WordPress在主题、插件开发中,如果我们直接使用 ` $(‘#ID’) ` 这种写法就会报错:
Uncaught ReferenceError: jQuery is not defined
TypeError: $ is not a function
解决方法
jQuery(function($) {
// use $
});
WordPress在主题、插件开发中,如果我们直接使用 ` $(‘#ID’) ` 这种写法就会报错:
Uncaught ReferenceError: jQuery is not defined
TypeError: $ is not a function
jQuery(function($) {
// use $
});
WordPress 插件开发中,有时需要检索文章对应的自定义字段postmeta,这里写一下相关的代码段
$searchArgs = array(
'post_type' => 'post',
'meta_query' = array(
'relation' => 'AND',
array( 'key' => 'srch_age', 'value' => $_REQUEST['srch_age'] ),
array( 'key' => 'srch_ptype', 'value' => $_REQUEST['srch_ptype'] )
// ... Add as many other criteria as you need
)
);
query_posts( $searchArgs );
while( have_posts() ): the_post();
...
endwhile;官方文档:https://developer.wordpress.org/reference/classes/wp_query/#custom-field-post-meta-parameters

一般来讲WordPress的文章数量达到一定量级时,运行速度就会变慢。网上看到的代码,记录一下解决SQL_CALC_FOUND_ROWS查询使网站变慢问题。
<?php
/**
* Plugin Name: WP Fast Query
* Plugin URI: https://www.jiloc.com/
* Description: WordPress 10w+数据时, 解决SQL_CALC_FOUND_ROWS查询使网站变慢问题
* Version: 1.0.0
* Author: Leo
* Author URI: https://www.jiloc.com/
* Author Email: admin@jiloc.com
* Text Domain: wp-fast-query
* Domain Path: /languages
* License: GPL 2.0
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
if ( ! function_exists( 'jset_no_found_rows' ) ) {
/**
* 设置WP_Query的 'no_found_rows' 属性为true,禁用SQL_CALC_FOUND_ROWS
*
* @param WP_Query $wp_query WP_Query实例
* @return void
*/
function jset_no_found_rows(\WP_Query $wp_query)
{
$wp_query->set('no_found_rows', true);
}
}
add_filter( 'pre_get_posts', 'jset_no_found_rows', 10, 1 );
if ( ! function_exists( 'jset_found_posts' ) ) {
/**
* 使用 EXPLAIN 方式重构
*/
function jset_found_posts($clauses, \WP_Query $wp_query)
{
// Don't proceed if it's a singular page.
if ($wp_query->is_singular()) {
return $clauses;
}
global $wpdb;
$where = isset($clauses['where']) ? $clauses['where'] : '';
$join = isset($clauses['join']) ? $clauses['join'] : '';
$distinct = isset($clauses['distinct']) ? $clauses['distinct'] : '';
$wp_query->found_posts = (int)$wpdb->get_row("EXPLAIN SELECT $distinct * FROM {$wpdb->posts} $join WHERE 1=1 $where")->rows;
$posts_per_page = (!empty($wp_query->query_vars['posts_per_page']) ? absint($wp_query->query_vars['posts_per_page']) : absint(get_option('posts_per_page')));
$wp_query->max_num_pages = ceil($wp_query->found_posts / $posts_per_page);
return $clauses;
}
}
add_filter( 'posts_clauses', 'jset_found_posts', 10, 2 );
既然提到腾讯云的轻量服务器,这里手上有上海和北京轻量服务器,看看简单的性能测试。实际上在使用的时候,基本上没有多大的区别,轻量服务器也可以安装纯净版的镜像系统。不过我们需要注意的,如果我们在爆款活动促销的时候会看到Linux和Windows系统可能有时候不能同存的。
轻量服务器在使用的时候也需要设置安全组,唯有在策略和界面上稍微不同,原理都是一样的。废话少说,我们看看腾讯云上海轻量应用服务器的速度和性能如何。
如果我们需要购买轻量服务器可以看看下面最新活动。 腾讯云 全球云服务器活动新上线
这里简单的测试下国内节点的PING速度,这个速度肯定没问题的,毕竟是上海机房。
| 区域 | 最快/最慢 | 平均 |
|---|---|---|
| 全网 | 上海(腾讯云-轻量) 0.3ms/巴西圣保罗(ZENLAYER-SAO2) 439.7ms | 149.9ms |
| 移动 | 江苏镇江(移动) 11.3ms/云南昆明(移动) 56.4ms | 31.8ms |
| 联通 | 安徽滁州(电信2) 10.3ms/辽宁沈阳(联通-云端1) 38.8ms | 23.7ms |
| 电信 | 江苏常州(电信) 8.4ms/吉林长春(天翼云) 47.6ms | 23.4ms |
| 华南 | 广东广州(青云) 32.1ms / 广西南宁(天翼云) 41.1ms | 35.2ms |
| 华北 | 山西太原(天翼云) 26.9ms / 内蒙古呼和浩特(蓝视云) 30.7ms | 29.2ms |
| 华东 | 上海(腾讯云-轻量) 0.3ms / 山东青岛(天翼云) 23.3ms | 11.3ms |
| 华中 | 湖北武汉(天翼云) 17.6ms / 河南许昌 24.7ms | 21.1ms |
| 东北 | 辽宁沈阳(联通-云端2) 33.1ms / 吉林长春(铁通) 48.8ms | 42.1ms |
| 西北 | 陕西西安(天翼云二区) 27.5ms / 陕西西安(天翼云二区) 27.5ms | 27.5ms |
| 西南 | 贵州贵阳(华为云) 33.2ms / 云南昆明(移动) 56.4ms | 41.5ms |
| 港澳台 | 香港(腾讯云-轻量) 33.2ms / 香港 229.3ms | 73.3ms |
| 亚洲 | 日本东京(zndata) 49.0ms/越南河内市 397.9ms | 198.2ms |
| 欧洲 | 法国巴黎 207.9ms/西班牙马拉加 326.2ms | 245.4ms |
| 非洲 | 埃及开罗 285.4ms/埃及开罗 285.4ms | 285.4ms |
| 北美洲 | 美国加利福尼亚州洛杉矶 133.1ms/美国本德(iwebfusion) 286.8ms | 198.4ms |
| 南美洲 | 巴西圣保罗(softlayer) 389.7ms/巴西圣保罗(ZENLAYER-SAO2) 439.7ms | 409.4ms |
| 大洋洲 | 澳大利亚悉尼(AMAZON-LIGHTSAIL) 243.9ms/澳大利亚悉尼 415.4ms | 341.5ms |
总之,相比云服务器而言,轻量服务器带宽是比较大,但是配置是固定的,不可以像云服务器可以自定义各个硬件配置。轻量服务器IP也不可以更换,云服务器是可以弹性设置。

我们一般在备份数据库的时候,如果数据库体积比较小,直接用phpMyadmin工具备份一点问题都没有,同理如果数据比较小直接导入用这个也是可以的。但是如果数据库比较大的话,就不容易这样操作,会导致备份和恢复不全。那我们还是需要学点备份大数据库的办法。
在这里,WordPress采集插件简单的记录常用的MySQL数据库备份和恢复还原的办法,不要说这些命令看不懂也不会,你要有这么大数据库的时候必须要学会的,否则还真没办法混。
第一、命令备份数据库
1、备份单站点数据库
如果我们备份单个网站数据库的时候可以用到指定数据库名的办法。
mysqldump -u数据库用户名 -p数据库密码 数据库名 > database_name.sql
2、多个数据库备份
mysqldump –databases database_onedatabase_two > two_databases.sql
在上面的代码中,database_one是要备份的第一个数据库的名称,database_two是第二个的名称。
3、备份所有数据库
mysqldump –all-databases > all_databases.sql
第二、恢复数据库
mysql -u数据库用户名 -p数据库密码 数据库名 < 数据库文件名.sql
我们需要针对某个数据库对应恢复。

在HTML的页面head中加入禁止缩放,代码如下:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
前面我们有介绍一些highcharts图表的应用,这里记录一下如何去掉右下角highcharts.com的谁有链接
credits: {enabled: false}exporting: {enabled:false}
在日常开发中,我们通常会遇到数组的操作。我们这里记录一下如何在一个多维不规则数组中,删除某个key键或value值。下面我们给出删除key键的函数方法。
/**
* 删除多维数组中指定key键以及value值
* @param array $arr 数组
* @param string/int $key 键(key)
* @return array
*/
function mulit_array_remove_by_key($arr, $key){
$new_array = [];
foreach($arr as $k => $v) {
/* 判断当前元素的值是不是数组,是的话就递归下去,重复查找这个函数。 */
if(is_array($v)) {
/* 使用新数组记录 */
$new_array[$k] = mulit_array_remove_by_key($v, $key);
continue;
}elseif($k == $key) {
/* 找到元素后删除 */
unset($arr[$k]);
continue;
}
/* 没删除的继续保留下来存储在新数组 */
$new_array[$k] = $arr[$k];
}
return $new_array;
}