月度归档: 2022 年 9 月

  • WP-CLI 安装使用图文教程

    WP-CLI 安装使用图文教程

    WP-CLI is the command-line interface for WordPress. You can update plugins, configure multisite installations and much more, without using a web browser.

    Installing

    Downloading the Phar file is our recommended installation method for most users. Should you need, see also our documentation on alternative installation methods (Composer, Homebrew, Docker).

    Before installing WP-CLI, please make sure your environment meets the minimum requirements:

    • UNIX-like environment (OS X, Linux, FreeBSD, Cygwin); limited support in Windows environment
    • PHP 5.6 or later
    • WordPress 3.7 or later. Versions older than the latest WordPress release may have degraded functionality

    Once you’ve verified requirements, download the wp-cli.phar file using wget or curl:

    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

    Next, check the Phar file to verify that it’s working:

    php wp-cli.phar --info

    To use WP-CLI from the command line by typing wp, make the file executable and move it to somewhere in your PATH. For example:

    chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp

    If WP-CLI was installed successfully, you should see something like this when you run wp --info:

    $ wp --info
    OS:     Linux 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64
    Shell:  /usr/bin/zsh
    PHP binary:     /usr/bin/php8.1
    PHP version:    8.1.0
    php.ini used:   /etc/php/8.1/cli/php.ini
    MySQL binary:   /usr/bin/mysql
    MySQL version:  mysql  Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
    SQL modes:
    WP-CLI root dir:        /home/wp-cli/
    WP-CLI vendor dir:      /home/wp-cli/vendor
    WP_CLI phar path:
    WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
    WP-CLI global config:
    WP-CLI project config:  /home/wp-cli/wp-cli.yml
    WP-CLI version: 2.6.0

    Usage

    WordPress插件WP-JPOST使用WP_CLI命令行进行任务

    cd /www/wwwroot/uziwp.com/ ; wp jpost 1

    进入到wordpress所在的目录之后,运行命令, wp jpost 任务ID

  • Mysql插入数据:不存在则插入,存在则跳过或更新

    Mysql插入数据:不存在则插入,存在则跳过或更新

    很多时候我们在做数据插入的时候需要判断一下当前我插入的数据是否已经存在于数据库中。

    一般情况下我们会写两条sql去操作

    select 查询当前插入的数据是否已经存在如果不存在就插入新的记录,如果存在就提示用户该记录已经存在在mysql里面可以这么操作,如果记录存在就跳过或者更新,不存在就插入!

    IGNORE

    这个是根据插入表的主键和唯一索引去匹配的,如果当前插入的记录存在则跳过不插入。

    示例:

    INSERT IGNORE INTO `user` (‘phone’) VALUES (‘18888888888’);

    此时user表中phone字段是唯一的,如果有这条记录则不执行插入操作,如果出现重复数据,将不返回错误,只是以警告形式返回。

    on duplicate key update

    主键或者唯一索引有重复时,则执行update操作

    示例:

    假设有一张表,id为主键,并且表中已经存在了id=1,likes=5的记录,此时下面两条sql等价。

    INSERT INTO TABLENAME (id,likes) VALUES (1,18) ON DUPLICATE KEY UPDATE likes=likes+1;

    UPDATE TABLENAME SET likes=likes+1 WHERE id=1;

    如果是插入值,返回受影响行数为1,如果执行了更新操作那么返回的受影响行数为2.

    如果条件是针对于主键操作的,那么此操作是无效操作,等同于ignore

    如果一次性插入多条记录,此时id为主键,或者a是一个unique索引,并且表中已经存在的记录。

    INSERT INTO TABLENAME (id,likes) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE likes = likes+1;

    执行后likes的值为变成5,因为在插入前已经存在了id=1的记录,上面的sql等于执行了两条update语句。

    NOTE:INSERT INTO TABLENAME……ON DUPLICATE KEY UPDATE……,这样的sql中,假如插入的记录在表中一种有重复值(与主键、唯一索引匹配),那么则会执行update操作,如果在插入的时候表中没有重复值,那么就会执行insert操作。

    问题:现在问题来了,如果INSERT多行记录, ON DUPLICATE KEY UPDATE后面字段的值怎么指定?要知道一条INSERT语句中只能有一个ON DUPLICATE KEY UPDATE,到底他会更新一行记录,还是更新所有需要更新的行。这个问题困扰了我很久了,其实使用VALUES()函数一切问题都解决了。

    如果表中已经有id=1,likes=18 ;id=2,likes=19的两条记录,如果插入语句中有id=1或者id=2的记录,则更新原有记录,否则插入新行。

    最后强调一下:

    注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!

    INSERT……SELECT……WHERE NOT EXISTS

    NOTE:根据查询条件判断是否已经有对应的值,有的话跳过,没有的话执行插入,随便想查什么就查什么,这个用得最多。

    REPLACE INTO

    如果存与主键或者唯一索引相同的记录,那么则会先删除,然后在插入新记录。

    注意:如果有两个主键或者唯一索引,必须要值全部匹配才会执行替换操作,否则执行插入操作,详情见官网。

    MySQL对REPLACE(和 LOAD DATA … REPLACE)使用以下算法 :

    尝试将新行插入表中插入失败,因为主键或唯一索引发生重复键错误:从表中删除具有重复键值的冲突行再次尝试将新行插入表中

  • Debian 移除 sendmail

    Debian 移除 sendmail

    通过普通的方式移除sendmail总数不太干净,下面列出指令,可以移除sendmail:

    apt-get purge sendmail*

    使用前记得kill掉sendmail。

  • Linux解决“您在 /var/spool/mail/root 中有新邮件”的问题(You have new mail in /var/spool/mail/root)

    Linux解决“您在 /var/spool/mail/root 中有新邮件”的问题(You have new mail in /var/spool/mail/root)

    You have new mail in /var/spool/mail/root

    · 您在 /var/spool/mail/root 中有新邮件

    安装完LINUX后经常使用终端远程登录,登录后经常出现”You have new mail in /var/spool/mail/root”的提示,这东西到底是做什么用的呢?经过查询才知道这是LINUX的邮件提示功能。LINUX会定时查看系统各种状态做汇总,每经过一段时间会把汇总的信息发送的root的邮箱里。

    用cat命令可以查看邮件内容

    cat /var/spool/mail/root

    删除邮件

    cat /dev/null > /var/spool/mail/root

    禁止系统检查邮件

    echo "unset MAILCHECK" >> /etc/profile
    source /etc/profile

    运行这个命令需要ROOT权限所以最好以root登录后修改或是使用sudo运行。执行成功后重新登录就可以了,这烦人的提示就不会再出来了!

  • WordPress导航类主题 uziwp_nav

    WordPress导航类主题 uziwp_nav

    演示地址:https://gkxyz.com

    2022.09.02

    • 主题初始化,主题需要依赖安装`Advanced Custom Fields 专业版`
    • 后台可以自定义设置首页出现的类别
    • 单页中可以关联推荐的站点、文章内容
    • 基于Bootstrap,兼容电脑pc端、手机wap端
    • 保密模式,所有内页内容可以设置需要输入密码才能访问。
WeChat
↑