某位苦于被软文白嫖的站长的诉求,说是有广告主找他发软文,每次只发一个月,到期又不续费,搞得他每次都忘记下掉文章,为此希望能实现WordPress定时修改文章状态,自动将文章移动到回收站或者将文章性质由公开改为私密。
为了方便管理以及使用最少的代码量,本教程放弃使用WordPress的定时任务,改用Linux系统的定时任务,如果不会使用,可以使用可视化面板,如宝塔面板等实现定时任务。
首先在你的网站找个地方新建一个php文件,比如我在网站根目录建立了一个changepost.php
,然后复制如下代码
复制
<?php //https://www.daimadog.org/8870.html //自动修改文章状态 require( dirname(__FILE__).'/wp-load.php' ); $action = isset($_GET['action']) ? $_GET['action'] : 'trash'; $postid = isset($_GET['postid']) ? (int) $_GET['postid'] : 0; if($postid){ if($action){ if($action=='private'){ $post_data = array( 'ID' => $postid, 'post_status' => 'private' ); if( wp_update_post( $post_data )){ print_r("成功变更为隐私文章"); }else{ print_r("隐私文章改变失败!"); } exit(); } } if( wp_trash_post( $postid)){ print_r("成功移至回收站"); }else{ print_r("移至回收站失败!"); } exit(); }else{ print_r("必须输入postid"); } ?>
注意:其中wp-load.php
文件在根目录,如果保存的文件不在根目录,请在路径前加上../
,代表本文件的上一级目录中的wp-load.php
文件,以此类推,有多少层级就加多少个../
,比如在themes文件夹中,那么你的代码应该是
复制
require( dirname(__FILE__).'/../../wp-load.php' );
其中action表示是将文章改为私密还是移动到回收站,postid是对哪篇文章。
然后在宝塔面板中新增定时任务,如下图
url写你的文件地址,注意后面的参数。
添加完成后可以手动执行下,看看效果。
这样的话就需要将此文件藏好,不然被别人访问一下就没了,哈哈哈。当然也可以加入参数进行验证,代码如下
复制
<?php //https://www.daimadog.org/8870.html //自动修改文章状态 require( dirname(__FILE__).'/wp-load.php' ); $mkey = isset($_GET['mkey']) ? $_GET['mkey'] : ''; $action = isset($_GET['action']) ? $_GET['action'] : 'trash'; $postid = isset($_GET['postid']) ? (int) $_GET['postid'] : 0; if($mkey!='你的密码'){ print_r("密码不正确"); exit(); } if($postid){ if($action){ if($action=='private'){ $post_data = array( 'ID' => $postid, 'post_status' => 'private' ); if( wp_update_post( $post_data )){ print_r("成功变更为隐私文章"); }else{ print_r("隐私文章改变失败!"); } exit(); } } if( wp_trash_post( $postid)){ print_r("成功移至回收站"); }else{ print_r("移至回收站失败!"); } exit(); }else{ print_r("必须输入postid"); } ?>
这样你的请求链接就需要增加一个验证参数mkey,如下
复制
域名/你的文件路径/文件名.php?mkey=你的密码&action=private&postid=100
评论 (1)