wordpress网上有很多插件,如果没有搜索到你想要的插件,下面我们一步一步的开发自己的插件,wordpress中插件的地方:
第一步让wordpress读取你的插件,并显示在后台插件管理的位置,在wordpress的插件目录下面,建立你的插件目录和文件,如图:
然后编辑postsclean.php文件,添加如下内容:
<?php /* Plugin Name: postsclean Plugin URI: http://wpsite.com Description: 删除posts中自动备份的文章 Version: 1.0 Author: 龚政 Author URI:http://gzinfo.blog.51cto.com/ */
保存之后,刷新你的后端管理界面,在看插件列表那里是不是多了一个你自己定义的插件
第二步完善功能,既然是删除posts表中自动保存的文章,需要给出一个html的表单,来触发这个删除操作,首先我们在后台添加一个菜单更主题和用户菜单平级,还是编辑postsclean.php文件,添加如下代码:
<?php /* Plugin Name: postsclean Plugin URI: http://wpsite.com Description: 删除posts中自动备份的文章 Version: 1.0 Author: 龚政 Author URI:http://gzinfo.blog.51cto.com/ */ function regist_posts_menu() { add_menu_page( '文章清理', '文章清理', 'manage_options', 'PostsClean' ); } add_action( 'admin_menu', 'regist_posts_menu' );
现在刷新我们的后台,会看到我们添加的菜单项已经成功,如图:
这个时候点击文章清理这个菜单,你会发现系统报错:
不用怀疑,因为我们还没有为这个插件添加相关的功能,接下来我们添加一个函数,输出一个表单:
<?php /* Plugin Name: postsclean Plugin URI: http://wpsite.com Description: 删除posts中自动备份的文章 Version: 1.0 Author: 龚政 Author URI:http://gzinfo.blog.51cto.com/ */ function regist_posts_menu() { add_menu_page( '文章清理', '文章清理', 'manage_options', 'PostsClean', 'postsclean_html' ); } function postsclean_html() { ?> <form method="post" action=""> <select name="posts_type"> <option value="auto-draft">auto-draft</option> <option value="inherit">inherit</option> </select> <input type="submit" value="提交" /> </form> <?php } add_action( 'admin_menu', 'regist_posts_menu' );
现在点击菜单,会出现一个非常简单的表单,剩下的就是提交表单之后,我们需要执行什么操作,接着我们继续完善postsclean.php,在表单提交之后删除相关的posts,完整的代码如下:
<?php /* Plugin Name: postsclean Plugin URI: http://wpsite.com Description: 删除posts中自动备份的文章 Version: 1.0 Author: 龚政 Author URI:http://gzinfo.blog.51cto.com/ */ //表单提交后删除ID为5的文章 if ( isset( $_POST['posts_type'] ) ) { global $wpdb; $sql = 'DELETE FROM wp_posts WHERE ID=5'; $wpdb->query( $sql ); } function regist_posts_menu() { add_menu_page( '文章清理', '文章清理', 'manage_options', 'PostsClean', 'postsclean_html' ); } function postsclean_html() { ?> <form method="post" action=""> <select name="posts_type"> <option value="auto-draft">auto-draft</option> <option value="inherit">inherit</option> </select> <input type="submit" value="提交" /> </form> <?php } add_action( 'admin_menu', 'regist_posts_menu' );
最后验证插件是否执行成功,提交表单后到你的数据库中去看看,ID=5的文章是否删除成功