在自定义PHP脚本中加载WordPress:WP_Query
正常工作。
例如,假设您有一个名为my-cron.php
WordPress安装在web根目录中,如下所示:
public_html/
index.php
my-cron.php <--
wp-load.php
wp-settings.php
...
wp-admin/
wp-content/
wp-includes/
在此设置中,如果要使用
WP_Query
在里面
my-cron.php
文件,您需要加载
wp-load.php
文件所以在
my-cron.php
文件您需要具有以下代码:
if ( ! defined(\'ABSPATH\') ) {
/** Set up WordPress environment */
require_once( dirname( __FILE__ ) . \'/wp-load.php\' );
}
访问WP\\u查询:此时,您可以访问
WP_Query
, 所以你可以这样使用它:
// simply selecting posts with category name "wordpress"
$the_query = new WP_Query( array( \'category_name\' => \'wordpress\' ) );
if ( $the_query->have_posts() ) {
echo \'<ul>\';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo \'<li>\' . get_the_title() . \'</li>\';
}
echo \'</ul>\';
}
else {
echo "No post found for category named wordpress";
}
删除帖子:但是,WP\\u Query没有删除功能。为此,您需要使用
wp_delete_post()
功能或
WPDB
班使用
wp_delete_post()
建议使用,因为它将处理许多依赖项,但是,如果需要更多控制,则可以使用
WPDB
类别或
$wpdb
全局变量,但如果选择该路径,请小心。
例如,以下代码将删除ID为的帖子1
:
$deleted = wp_delete_post( 1 );
if( $deleted === false ) {
echo "Couldn\'t delete Post with ID=1";
}
else {
echo "Deleted Post with ID=1";
}
当然你可以合并
WP_Query
具有
wp_delete_post
查找和删除符合特定标准的帖子。
安装Cron:
编写完自定义PHP脚本后,您需要
setup cron job 以HTTP请求的形式运行,如下所示:
5 * * * * wget -q -O - http://your-domain.com/my-cron.php
安全性:自访问后
WP_Query
或
wp_delete_post
作用
doesn\'t require any authentication (或权限)默认情况下,您需要确保
my-cron.php
无法公开访问。例如,可以在的开头添加以下内容
my-cron.php
要访问的文件
localhost
仅限:
$allowed_ip = \'127.0.0.1\';
if( $allowed_ip !== $_SERVER[\'REMOTE_ADDR\'] ) {
exit( 0 );
}