您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
第六课、简单的all in one seo 插件开发(一个简单的非单文件插件)
发布时间:2023-02-28 19:19:13编辑:雪饮阅读()
之前了解的大都是单文件插件,那么这次了解一个稍微有点复杂的插件,就是后台要有一个填写表单,填写关键词和描述,然后在首页源代码里面就包含该关键词和描述,就是seo技术,懂seo的应该都知道。
那么插件主文件
D:\phpstudy_pro\WWW\wpcourse\wp-content\plugins\plugin_3\plugin_all_in_one_simple.php如:
<?php
/*
Plugin Name: all in one simple
Plugin URI: http://www.wpbaike.com
Version:V1.01
Author: murphy pendleton
Author URI:http:// www.wpbaike.com
Description:WP百科网简单all in one seo simple插件
*/
function show_menu(){
//在设置中添加一个菜单条目,该菜单条目所指向的页面内容通过function中编写(这里是include)
add_options_page('这里是page title','这里是menu_title', 8, __FILE__, 'action_menu');
}
function action_menu(){
//自定义插件的页面中的字段回显及保存都在这个include的php中
include('html.php');
}
//添加action
if ( is_admin() ){
//在后台中admin_menu钩子显示菜单时添加上面的自定义菜单条目
add_action('admin_menu','show_menu');
//然后在后台admin_init钩子初始化时候
add_action('admin_init', 'register_mysettings' );
} else {
}
function showall(){
$keywords=get_option('keyword');
$description = get_option('des');
echo "<meta name=".'"keywords"'." content=".'"'.$keywords.'"'." />";
echo "<meta name=".'"description"'." content=".'"'.$description.'"'." />";
}
function register_mysettings() {
//注册之后就可以被options处理
register_setting('myoption-group', 'keyword');
register_setting('myoption-group', 'des');
}
//这步不能加在is_admin判断的哪里,因为该插件主要体现在首页源代码里面的keywords和description中,如果在is_admin中加,则只对后台相关页面生效了
add_filter('wp_head','showall');
?>
然后被包含的文件
D:\phpstudy_pro\WWW\wpcourse\wp-content\plugins\plugin_3\html.php如
<div class="wrap">
<h2>WP百科网SEO插件seo设置</h2>
<form method="post" action="options.php">
<?php settings_fields( 'myoption-group'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">关键字:</th>
<td><input type="text" name="keyword" size="100" value="<?php echo get_option('keyword'); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">描述:</th>
<td><input type="text" name="des" size="100" value="<?php echo get_option('des'); ?>" /></td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('保存设置') ?>" />
</p>
</form>
</div>
通过审查元素,你会发现settings_fields的实现逻辑其实就是隐藏域。
另外补充说明的是add_options_page的第三个参数capability参数这里是8,好像是一个优先级,具体官方的解释是:
$capability 字符串 必需
向用户显示此菜单所需的功能。
这里我觉得没有必要纠结,一般来说就8应该也没有什么吧。
那么最后该插件的效果如:
后台
在该插件后台那个表单填入关键字和描述并提交保存后查看用户端首页源代码:
像上面这样添加菜单项挂载于”Settings”中,也可以使用add_menu_page替换add_options_page,参数我这里都是保持一摸一样的。
然后未选中这个插件时候的效果是这样
进入后是这样
虽然是独立菜单了,但是那个图标还是Settings的图标,不过这种一般也影响不大,或许也是可以修改的。
关键字词:插件,seo