logo
carrot

太阳当空照,花儿对我笑

wordpress插件demo

7/22/2023, 10:22:29 PM
  1. 首页
  2. /
  3. 正文
<?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;
}


热门文章
标签云
© 2021 Copyright 本站由 upyun 提供储存服务