<?php
/**
* @package Artcle_Notice
* @version 1.7.2
*/
/*
Plugin Name: Artcle_Notice
Plugin URI: http://wordpress.org/plugins/hello-dolly/
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.7.2
Author URI: http://ma.tt/
*/
// We need some CSS to position the paragraph.
function publish_post_action($post_id) {
// 获取站点标题,文章内容,首张缩略图,并获取作者昵称
$blog_title = get_bloginfo('name');
$post = get_post($post_id);
$nickname = get_the_author_meta('nickname', $post->post_author);
// 控制文章正文推送长度
$post_content_short = wp_trim_words($post->post_content,20, '' );
//获取文章基础信息
$title=$post->post_title;
$link=get_permalink($post_id);
$emerge=$post_content_short;
//获取配置信息
$options = get_option('plugin_options');
$api=array_key_exists("api",$options)?$options['api']:"https://www.baidu.com/";
$noticeTemplate=array_key_exists("noticeTemplate",$options)?$options['noticeTemplate']:"";
$groups=explode(",",array_key_exists("groups",$options)?$options['groups']:"");
//解析模板
$noticeTemplate=str_replace("\${title}",urlencode($title),$noticeTemplate);
$noticeTemplate=str_replace("\${link}",urlencode($link),$noticeTemplate);
$noticeTemplate=str_replace("\${emerge}",urlencode($emerge),$noticeTemplate);
$noticeTemplate=str_replace("\${nickname}",urlencode($nickname),$noticeTemplate);
foreach ($groups as $group){
$notice=$noticeTemplate;
$notice=str_replace("\${group}",$group,$notice);
$notice=str_replace("\\n",urlencode("\n"),$notice);
file_put_contents("1.txt",$notice);
return;
file_get_contents($api.$notice);
}
}
add_action( 'publish_post', 'publish_post_action' );
////////////////////////////////////////////////////////////////////////////////////////
add_action( 'rest_api_init', function() {
register_rest_route( 'robot', '/config', [
'methods' => 'GET',
'callback' => 'get_project',
'permission_callback' => '__return_true',
] );
} );
// Get single project
function get_project( $params ) {
$options = get_option('plugin_options');
$groups=array_key_exists("groups",$options)?$options['groups']:"";
return $groups;
}
////////////////////////////////////////////////////////////////
add_action('admin_menu', 'plugin_admin_add_page');
function plugin_admin_add_page() {
add_options_page('Custom Plugin Page', "Artcle_Notice", 'manage_options', 'plugin', 'plugin_options_page');
}
function plugin_options_page() {
?>
<div>
<h2>Artcle_Notice</h2>
<form action="options.php" method="post">
<?php settings_fields('plugin_options'); ?>
<?php do_settings_sections('plugin'); ?>
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
</form></div>
<?php
}
add_action('admin_init', 'plugin_admin_init');
function plugin_admin_init(){
register_setting( 'plugin_options', 'plugin_options', 'plugin_options_validate' );
add_settings_section('plugin_section_robot', '机器人配置', 'Inputtip', 'plugin');
add_settings_field('plugin_text_robotApi', '机器人api', 'plugin_setting_robotApi', 'plugin', 'plugin_section_robot');
add_settings_field('plugin_text_robotNoticeTemplate', '新文章发布通知格式', 'plugin_setting_robotNoticeTemplate', 'plugin', 'plugin_section_robot');
add_settings_section('plugin_main_group', '授权群', 'Inputtip', 'plugin');
add_settings_field('plugin_text_groupsCheck', '授权群号', 'plugin_setting_groupsCheck', 'plugin', 'plugin_main_group');
}
function Inputtip() {
}
function plugin_setting_robotNoticeTemplate() {
$options = get_option('plugin_options');
$noticeTemplate=array_key_exists("noticeTemplate",$options)?$options['noticeTemplate']:"";
echo "<input id='plugin_api' name='plugin_options[noticeTemplate]' size='40' type='text' value='{$noticeTemplate}' />";
}
function plugin_setting_robotApi() {
$options = get_option('plugin_options');
$api=array_key_exists("api",$options)?$options['api']:"";
echo "<input id='plugin_api' name='plugin_options[api]' size='40' type='text' value='{$api}' />";
}
function plugin_setting_groupsCheck() {
$options = get_option('plugin_options');
$groups=array_key_exists("groups",$options)?$options['groups']:"";
echo "<input id='plugin_groups' name='plugin_options[groups]' size='40' type='text' value='{$groups}'/>";
}
function plugin_options_validate($input) {
// $newinput['text_string'] = trim($input['text_string']);
// if(!preg_match('/^[a-z0-9]{32}$/i', $newinput['text_string'])) {
// $newinput['text_string'] = '';
// }
return $input;
}