标签: wp-cli

env:mysql:`wp import`之后没有这样的文件或目录

我正在尝试使用本地导入数据库,wp db import databasename.sql但是我收到以下错误:env: mysql: No such file or directory.谁能告诉我如何解决这个问题?

wordpress mamp-pro wp-cli

4
推荐指数
2
解决办法
4307
查看次数

--allow-root 无法在 docker 容器中运行 wp-cli

在docker中使用WP CLI时,我需要以root身份执行它。我需要--allow-root直接在 .bashrc 中添加该标志,我试图找出它不起作用的原因。

FROM webdevops/php-dev:7.3

# configure postfix to use mailhog
RUN postconf -e "relayhost = mail:1025"

# install wp cli
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
    chmod +x wp-cli.phar && \
    mv wp-cli.phar /usr/local/bin/wp && \
    echo 'wp() {' >> ~/.bashrc && \
    echo '/usr/local/bin/wp "$@" --allow-root' >> ~/.bashrc && \
    echo '}' >> ~/.bashrc

WORKDIR /var/www/html/
Run Code Online (Sandbox Code Playgroud)

我的.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. …
Run Code Online (Sandbox Code Playgroud)

wordpress bash docker wp-cli alpine-linux

4
推荐指数
1
解决办法
3018
查看次数

(WP-CLI) 未创建 Wordpress-Tests_Lib 文件

我正在尝试在 Ubuntu 14.04 上进行 WordPress 插件测试,我正在设置 WP-CLI,但我无法下载必要的文件(includes/functions.php)。

这是我正在使用的命令:

bash bin/install-wp-tests.sh wordpress_test root '' localhost latest
Run Code Online (Sandbox Code Playgroud)

这是输出:

+ install_wp
+ '[' -d /tmp/wordpress/ ']'
+ return
+ install_test_suite
++ uname -s
+ [[ Linux == \D\a\r\w\i\n ]]
+ local ioption=-i
+ '[' '!' -d /tmp/wordpress-tests-lib ']'
+ cd /tmp/wordpress-tests-lib
+ '[' '!' -f wp-tests-config.php ']'
+ download https://develop.svn.wordpress.org/trunk/wp-tests-config-sample.php /tmp/wordpress-tests-lib/wp-tests-config.php
++ which curl
+ '[' /opt/lampp/bin/curl ']'
+ curl -s https://develop.svn.wordpress.org/trunk/wp-tests-config-sample.php
+ sed -i 's:dirname( __FILE__ ) . '\''/src/'\'':'\''/tmp/wordpress/'\'':' /tmp/wordpress-tests-lib/wp-tests-config.php
+ sed …
Run Code Online (Sandbox Code Playgroud)

wordpress proxy plugins phpunit wp-cli

2
推荐指数
2
解决办法
1370
查看次数

以编程方式批量创建 WooCommerce 产品

可以在 WooCommerce 上批量创建产品吗?我用的是wp-cli Product命令但是好像要一一创建。

<?php

$products = array(
    array('title' => 'My product 1'),
    array('title' => 'My product 2'),
    // ...
    // 10.000 more products
);

foreach ($products as $product) {
    $cliProduct = new WC_CLI_Product();
    $cliProduct->create(array(), $product);
    WP_CLI::success("Added Product #{$product['title']}");
}
Run Code Online (Sandbox Code Playgroud)

这需要很多时间,因为它将对每个产品进行查询,更糟糕的是,这将是一个定期运行的 cron 作业。我还必须检查产品是否存在,在这种情况下,更新它而不是创建新产品。

所以查询的数量将乘以 2。

产品存在吗?更新它,否则创建它

有一个更好的方法吗?也许我应该直接查询数据库,但它看起来很脏。

是否有任何 WP 功能可以查询数据库而无需创建自己的数据库连接?

php wordpress woocommerce wp-cli

2
推荐指数
1
解决办法
4299
查看次数

如何从 jq 在 bash 中迭代 JSON 数组

背景

我希望能够将 json 文件传递​​给 WP CLI,以迭代地创建帖子。

所以我想我可以创建一个 JSON 文件:

[
    {
        "post_type": "post",
        "post_title": "Test",
        "post_content": "[leaflet-map][leaflet-marker]",
        "post_status": "publish"
    },
    {
        "post_type": "post",
        "post_title": "Number 2",
        "post_content": "[leaflet-map fitbounds][leaflet-circle]",
        "post_status": "publish"
    }
]
Run Code Online (Sandbox Code Playgroud)

并用 jq 迭代数组:

[
    {
        "post_type": "post",
        "post_title": "Test",
        "post_content": "[leaflet-map][leaflet-marker]",
        "post_status": "publish"
    },
    {
        "post_type": "post",
        "post_title": "Number 2",
        "post_content": "[leaflet-map fitbounds][leaflet-circle]",
        "post_status": "publish"
    }
]
Run Code Online (Sandbox Code Playgroud)

我希望能够迭代这些以执行类似的功能:

cat posts.json | jq --raw-output .[]
Run Code Online (Sandbox Code Playgroud)

有没有办法用jq或类似的方法来做到这一点?

到目前为止,我得到的最接近的是:

wp post create \
  --post_type=post \
  --post_title='Test Map' \ …
Run Code Online (Sandbox Code Playgroud)

bash json jq wp-cli

2
推荐指数
1
解决办法
5254
查看次数

在 PHP 脚本中执行 WP CLI 命令

为此,我将存储库 WP CLI 复制到根 WordPress

我编写了以下PHP代码对其进行编码并遇到了以下错误

define('WP_CLI_ROOT', ABSPATH . 'wp-cli');
require_once WP_CLI_ROOT . '/php/wp-cli.php';
Run Code Online (Sandbox Code Playgroud)
Warning: include_once(D:\Web\Sites\jupiterx/wp-cli/vendor/rmccue/requests/library/Requests.php): failed to open stream: No such file or directory in D:\Web\Sites\jupiterx\wp-cli\php\WP_CLI\Bootstrap\IncludeFrameworkAutoloader.php on line 48

Warning: include_once(): Failed opening 'D:\Web\Sites\jupiterx/wp-cli/vendor/rmccue/requests/library/Requests.php' for inclusion (include_path='C:\xampp\php\PEAR') in D:\Web\Sites\jupiterx\wp-cli\php\WP_CLI\Bootstrap\IncludeFrameworkAutoloader.php on line 48

Warning: include_once(D:\Web\Sites\jupiterx/wp-cli/vendor/wp-cli/mustangostang-spyc/Spyc.php): failed to open stream: No such file or directory in D:\Web\Sites\jupiterx\wp-cli\php\WP_CLI\Bootstrap\IncludeFrameworkAutoloader.php on line 49

Warning: include_once(): Failed opening 'D:\Web\Sites\jupiterx/wp-cli/vendor/wp-cli/mustangostang-spyc/Spyc.php' for inclusion (include_path='C:\xampp\php\PEAR') in D:\Web\Sites\jupiterx\wp-cli\php\WP_CLI\Bootstrap\IncludeFrameworkAutoloader.php on line 49

Warning: array_slice() expects parameter 1 to be array, …
Run Code Online (Sandbox Code Playgroud)

php wordpress wp-cli

1
推荐指数
1
解决办法
2347
查看次数

PHP 致命错误:在 crontab 中将 WP-CLI 命令作为 cron-job 运行时,无法打开所需的“wp-salt.php”

这个问题旨在作为其他人查找的信息帖子,因为幸运的是我已经找到了解决方案。

我尝试在 Cloudways 服务器上的 crontab 中将 Wordpress-CLI 命令作为 cron 作业运行。该命令直接在终端中运行没有任何问题,但在使用 crontab 启动时失败并出现致命 PHP 错误。

Wordpress-CLI 的基本命令如下所示:

wp migratedb profile [id]

由于 crontab 运行的上下文通常是未知的,并且 $PATH 变量可能不可用,因此我修改了命令以提供必要的绝对路径:

/usr/local/bin/wp migratedb profile [id] --path=/absolute/path/to/wordpress/core/files

同样,从终端启动时,这个修改后的命令也可以完美运行,没有任何问题。

最终的 crontab 条目看起来像这样:

0 5 * * * /usr/local/bin/wp migratedb profile [id] --path=/absolute/path/to/wordpress/core/files

当从调度程序运行时,它会产生以下错误:

PHP Fatal error:  require(): Failed opening required 'wp-salt.php' (include_path='.:/usr/share/php') in phar:///usr/local/bin/wp/vendor/wp-cli/config-command/src/Config_Command.php(444) : eval()'d code on line 34
Run Code Online (Sandbox Code Playgroud)

经过一些实验,我意识到除了非常基本的命令之外,所有WP-CLI 命令都会发生此错误

wp --info

,产生以下输出:

OS: Linux 4.19.0-21-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
Shell:  /bin/sh
PHP …
Run Code Online (Sandbox Code Playgroud)

php wordpress cron wp-cli cloudways

1
推荐指数
1
解决办法
745
查看次数

wp-cli search-replace 命令不搜索和替换

我正在使用 wp-cli 工具来搜索站点的 url 并将其替换为新的 url。我在 wordpress 安装目录中的命令行中执行此命令:

C:\xampp\htdocs\somewebsite>wp search-replace 'somewebsite.com' 'new_website.com' 
Run Code Online (Sandbox Code Playgroud)

该命令不会发出任何错误,当我使用此 sql 检查数据库时:

SELECT * FROM wp_options WHERE option_value LIKE '%new_website.com%'
Run Code Online (Sandbox Code Playgroud)

我得到零结果。

我在 wp.config 文件中正确设置了用户名、密码、数据库名称、位置。

编辑

这是否与 sql 文件权限有关?

编辑 好吧 wp-cli 对我不起作用,但https://interconnectit.com/products/search-and-replace-for-wordpress-databases/做了。确保您在撰写本文时使用稳定版本,即:v2.1.0 STABLE。

php mysql wordpress config wp-cli

0
推荐指数
1
解决办法
1854
查看次数