初始化WordPress环境以在命令行脚本中使用 时间:2012-12-18 作者:xaedes 我有一个用于维护wordpress插件的命令行脚本,必须加载wordpress核心才能访问wordpress功能。这个问题与Initialize WordPress environment to use in a real cron script. 虽然它与它不同,因为所提到的问题应该与(真实的)cron脚本一起使用,否则可以通过启动命令行php脚本来完成。由于所提到的问题已经得到了回答,而这个答案不能满足我的需要,我开始了这个问题。那么,在命令行脚本中初始化wordpress环境需要什么呢?Related Initialize WordPress environment to use in a real cron script 2 个回复 最合适的回答,由SO网友:xaedes 整理而成 我想出了以下解决方案。脚本必须从以下代码开始。<?php if( php_sapi_name() !== \'cli\' ) { die("Meant to be run from command line"); } function find_wordpress_base_path() { $dir = dirname(__FILE__); do { //it is possible to check for other files here if( file_exists($dir."/wp-config.php") ) { return $dir; } } while( $dir = realpath("$dir/..") ); return null; } define( \'BASE_PATH\', find_wordpress_base_path()."/" ); define(\'WP_USE_THEMES\', false); global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header; require(BASE_PATH . \'wp-load.php\'); Related How to determine wordpress base path when wordpress core is not loadedhttps://stackoverflow.com/questions/9101503/include-wordpress-core-into-own-scripts SO网友:scribu 如果您不想处理手动加载WordPress的混乱过程,您可以使用WP-CLI\'seval-file 命令:wp eval-file my-script.php Themy-script.php 文件可以包含任何WP函数调用。例如:<?php global $wpdb; echo implode( \' \', $wpdb->tables() ) . "\\n"; 结束 文章导航