WordPress主题Fanly Submit 插件百度熊掌号文章推送插件

  • A+
所属分类:软件&教程

自从百度熊掌号的接入以来,郑州seo 博主的网站上分享过wordpress接入百度熊掌号的页面改造,大多数在使用worldpress的站长都是喜欢折腾的,这不熊掌号的接入成功以后在百度熊掌号的数据展现还算是可以的,但是出现这样一个问题就是每我在网站中正常更新一篇文章的时候就必须去熊掌号的页面上去提交一次链接 ,怎么会允许这样的事情一直持续下去呢,这不在网站随便的一搜罗就出现了多个解决问题的的方法,随便的点击进去就是找到了大神分享的差价,熊掌号页面自动原创提交插件。

熊掌号自动原创提交插件(Fanly Submit 插件)分享:

WordPress百度熊掌号/原创保护数据提交插件,可实现用户自动自主的将文章推送至熊掌号并设置原创文章。

  1. add_action('admin_init', 'FanlySubmit', 100);
  2. function FanlySubmit() { // 自定义文章类型
  3.     $Fanly = get_option('FanlySubmit');//获取选项
  4.     if ( is_array($Fanly['Types']) ) {
  5.         foreach($Fanly['Types'] as $type) {
  6.             add_action('save_'.$type, 'fanly_submit', 10, 2);
  7.             add_filter('manage_'.$type.'_posts_columns', 'fanly_submit_add_post_columns');
  8.             add_action('manage_'.$type.'s_custom_column', 'fanly_submit_render_post_columns', 10, 2);
  9.         }
  10.     }
  11. }
  12. function fanly_submit($post_ID, $post) {
  13.     if( isset($_POST['Fanly_Submit_CHECK']) ){
  14.         //获取选项
  15.         $Fanly = get_option('FanlySubmit');
  16.         $P_Fanly_Submit = $_POST['Fanly_Submit'];
  17.         $P_original = $_POST['original'];
  18.         //判断是否设置新增
  19.         if(get_post_meta($post_ID,'Fanly_Submit',true)!='OK'){
  20.             if($P_Fanly_Submit=='realtime'){update_post_meta($post_ID, 'Fanly_Submit', 'realtime');}else{update_post_meta($post_ID, 'Fanly_Submit', 0);}
  21.         }
  22.         //判断是否设置原创
  23.         if(get_post_meta($post_ID,'original',true)!='OK'){
  24.             if($P_original=='1'){update_post_meta($post_ID, 'original', 1);}else{update_post_meta($post_ID, 'original', 0);}
  25.         }
  26.         //判断文章状态与推送状态 返回/继续
  27.         if( $post->post_status != 'publish' || (get_post_meta($post_ID,'Fanly_Submit',true) == 'OK' && get_post_meta($post_ID,'original',true) == 'OK') )return;
  28.         //执行
  29.         if( $P_Fanly_Submit || $P_original ){
  30.             $type = $P_Fanly_Submit=='batch' ? 'batch' : 'realtime';
  31.             $o_type = $P_original==1 ? ',original' : '';
  32.             $cambrian_api_url = 'http://data.zz.baidu.com/urls?appid='.$Fanly['APPID'].'&token='.$Fanly['APPToken'].'&type='.$type.$o_type;
  33.             $cambrian_re = wp_remote_post($cambrian_api_url, array(
  34.                 'headers'   => array('Accept-Encoding'=>'','Content-Type'=>'text/plain'),
  35.                 'timeout'   => 10,
  36.                 'sslverify' => false,
  37.                 'blocking'  => true,
  38.                 'body'      => get_permalink($post_ID)
  39.             ));
  40.             if ( is_wp_error( $cambrian_re ) ) {
  41.                 update_post_meta($post_ID, 'Fanly_Submit', '');
  42.                 //$error_message = $cambrian_re->get_error_message();
  43.                 //echo "Something went wrong: $error_message";
  44.             } else {
  45.                 //若同步成功,则给新增自定义栏目Fanly_Submit
  46.                 $res = json_decode($cambrian_re['body'], true);
  47.                 if($res['success_'.$type]==1){//提交成功
  48.                     if($res['success_original']==1){
  49.                         update_post_meta($post_ID, 'original', 'OK');// 原创成功提交;
  50.                     }
  51.                     $Fanly[$type] = $res['remain_'.$type].'|'.date(Ymd);
  52.                     update_option('FanlySubmit', $Fanly);//更新选项
  53.                     update_post_meta($post_ID, 'Fanly_Submit', 'OK');// OK 表示成功提交;
  54.                 }elseif($res['remain_'.$type]==0){//当天剩余的可推送url条数
  55.                     $Fanly[$type] = $res['remain_'.$type].'|'.date(Ymd);
  56.                     update_option('FanlySubmit', $Fanly);//更新选项
  57.                 }else{//未知错误 提交失败
  58.                     update_post_meta($post_ID, 'Fanly_Submit', '');
  59.                 }
  60.             }
  61.         }
  62.     }
  63. }
  64. //获取当前文章类型
  65. function fanly_submit_get_post_type() {
  66.   global $post, $typenow, $current_screen;
  67.   //we have a post so we can just get the post type from that
  68.   if ( $post && $post->post_type ) {
  69.     return $post->post_type;
  70.   } elseif ( $typenow ) {//check the global $typenow - set in admin.php
  71.     return $typenow;
  72.   } elseif ( $current_screen && $current_screen->post_type ) {//check the global $current_screen object - set in sceen.php
  73.     return $current_screen->post_type;
  74.   } elseif ( isset( $_REQUEST['post_type'] ) ) {//check the post_type querystring
  75.     return sanitize_key( $_REQUEST['post_type'] );
  76.   } elseif ( isset( $_REQUEST['post'] ) ) {//lastly check if post ID is in query string
  77.     return get_post_type( $_REQUEST['post'] );
  78.   }
  79.   return 'post';//we do not know the post type!
  80. }
  81. //同步
  82. add_action( 'admin_menu', 'fanly_submit_create' );
  83. function fanly_submit_create(){
  84.     $Fanly = get_option('FanlySubmit');//获取选项
  85.     if(is_array($Fanly['Types']) && in_array(fanly_submit_get_post_type(),$Fanly['Types'])){
  86.         add_action( 'post_submitbox_misc_actions', 'fanly_submit_to_publish_metabox' );//同步选项
  87.     }
  88. }
  89. //同步选项
  90. function fanly_submit_to_publish_metabox() {
  91.     $Fanly = get_option('FanlySubmit');//获取选项
  92.     if($Fanly['APPID']=='' || $Fanly['APPToken']=='')return;
  93.     global $post,$post_ID;
  94.     $fanly_submit   = get_post_meta($post_ID,'Fanly_Submit',true);
  95.     $original       = get_post_meta($post_ID,'original',true);
  96.     $remain_z       = explode('|',$Fanly['realtime']);//新增
  97.     $checked        = $fanly_submit=='0' ? '' : ($Fanly['Default']=='true'||$fanly_submit=='realtime' ? 'checked="checked"' : '');
  98.     $checked_o      = ((get_post_meta($post_ID,'original',true)=='' && $Fanly['Original']=='true') || get_post_meta($post_ID,'original',true)==1 || get_post_meta($post_ID,'original',true)=='OK') ? 'checked="checked"' : '';
  99.     if($original=='OK'){
  100.         $original_box = '(<label><input name="original" type="checkbox" value="1" disabled '.$checked_o.'>原创</label>)';
  101.     }else{
  102.         $o = $remain_z[1]==date(Ymd) ? '['.$remain_z[0].']' : '';
  103.         $original_box = '(<label><input name="original" type="checkbox" value="1" '.$checked_o.'>原创'.$o.'</label>)';
  104.     }
  105.     if($fanly_submit == 'OK'){//成功
  106.         $input = '
  107.             <input id="Fanly_Submit" type="checkbox" checked="checked" disabled>
  108.             <label for="Fanly_Submit" class="selectit">成功!'.$original_box.'</label>
  109.         ';
  110.     }elseif( strtotime(date($post->post_date))+24*60*60 <= time()  ){//历史数据 /距文章发布已经超过二十四小时
  111.         $remain_c = explode('|',$Fanly['batch']);//历史
  112.         if($remain_c[0]==0 && $remain_c[1]==date(Ymd)){
  113.             $input = '<label for="Fanly_Submit" class="selectit">提交上限'.$original_box.'<a style="font-weight:bold;color:#0066FF;text-decoration:none;" href="javascript:;" title="超过提交配额数量">?</a></label>';
  114.         }else{
  115.             $input = '
  116.             <input id="Fanly_Submit" name="Fanly_Submit" type="checkbox" value="batch" '.$checked.'>
  117.             <label for="Fanly_Submit" class="selectit">历史内容'.$original_box.'</label>';
  118.         }
  119.     }elseif($remain_z[0]==0 && $remain_z[1]==date(Ymd)){//新增 /当日提交数量上线
  120.         $input = '
  121.             <input id="Fanly_Submit" name="Fanly_Submit" type="checkbox" value="realtime" '.$checked.'>
  122.             <label for="Fanly_Submit" class="selectit">提交上限'.$original_box.'</label>';
  123.     }elseif($fanly_submit == 'realtime' || $fanly_submit=='0'){//已经勾选的新增数据提交
  124.         $input = '
  125.             <input id="Fanly_Submit" name="Fanly_Submit" type="checkbox" value="realtime" '.$checked.'>
  126.             <label for="Fanly_Submit" class="selectit">新增内容'.$original_box.'</label>
  127.         ';
  128.     }else{
  129.         $input = '
  130.             <input id="Fanly_Submit" name="Fanly_Submit" type="checkbox" value="realtime" '.$checked.'>
  131.             <label for="Fanly_Submit" class="selectit">新增内容'.$original_box.'</label>
  132.         ';
  133.     }
  134.     echo '<div class="misc-pub-section misc-pub-post-status"><input name="Fanly_Submit_CHECK" type="hidden" value="true">熊掌号:<span id="submit-span">'.$input.'</span></div>';
  135. }
  136. //add plugin link
  137. add_filter( 'plugin_action_links', 'fanly_submit_Add_Link', 10, 2 );
  138. function fanly_submit_Add_Link( $actions, $plugin_file ) {
  139.     static $plugin;
  140.     if (!isset($plugin))
  141.         $plugin = plugin_basename(__FILE__);
  142.     if ($plugin == $plugin_file) {
  143.             $settings   = array('settings' => '<a href="options-general.php?page=Fanly_Submit">' . __('Settings') . '</a>');
  144.             $site_link  = array('support' => '<a href="https://zhangzifan.com" target="_blank">Fanly</a>');
  145.             $actions    = array_merge($settings, $actions);
  146.             $actions    = array_merge($site_link, $actions);
  147.     }
  148.     return $actions;
  149. }
  150. //remove plugin
  151. add_filter( 'plugin_action_links', 'fanly_submit_remove_plugin_link', 10, 4 );
  152. function fanly_submit_remove_plugin_link( $actions, $plugin_file, $plugin_data, $context ){
  153.     if(isset($actions['edit'])){
  154.         switch($plugin_file){
  155.             case 'Fanly-Submit/FanlySubmit.php':unset( $actions['edit'] );
  156.             break;
  157.         }
  158.     }
  159.     return $actions;
  160. }
  161. // 文章列表字段
  162. //add_filter('manage_post_posts_columns', 'fanly_submit_add_post_columns');
  163. function fanly_submit_add_post_columns($columns) {
  164.     $columns['Fanly_Submit'] = '原创/熊掌号';
  165.     return $columns;
  166. }
  167. //add_action('manage_posts_custom_column', 'fanly_submit_render_post_columns', 10, 2);
  168. function fanly_submit_render_post_columns($column_name, $id) {
  169.     switch ($column_name) {
  170.         case 'Fanly_Submit':
  171.             echo get_post_meta( $id, 'original', TRUE)==1 || get_post_meta( $id, 'original', TRUE)=='OK' ? '是'  : '否'; //原创
  172.             echo '/';
  173.             echo get_post_meta( $id, 'Fanly_Submit', TRUE)=='OK' ? '提交成功' : '未提交'; //数据提交
  174.             break;
  175.     }
  176. }
  177. function fanly_submit_test($Appid, $Token){
  178.     $baidu_api_url = 'http://data.zz.baidu.com/urls?appid='.$Appid.'&token='.$Token.'&type=batch';
  179.     $response = wp_remote_post($baidu_api_url, array(
  180.         'headers'   => array('Accept-Encoding'=>'','Content-Type'=>'text/plain'),
  181.         'timeout'   => 10,
  182.         'sslverify' => false,
  183.         'blocking'  => true,
  184.         'body'      => home_url()
  185.     ));
  186.     if(is_array($response) && array_key_exists('body', $response)){
  187.         $data = json_decode( $response['body'], true );
  188.         return $data;
  189.     }else{return FALSE;}
  190. }
  191. //默认数据
  192. add_action('admin_init', 'fanly_submit_default_options');
  193. function fanly_submit_default_options(){
  194.     $Fanly = get_option('FanlySubmit');//获取选项
  195.     if( $Fanly == '' ){
  196.         $Fanly = array(//设置默认数据
  197.             'Types'     => '',
  198.             'APPID'     => '',
  199.             'APPToken'  => '',
  200.             'Default'   => '',
  201.             'Original'  => '',
  202.         );
  203.         update_option('FanlySubmit', $Fanly);//更新选项
  204.     }
  205. }
  206. // 更新检测
  207. function FANLY_SUBMIT_CHECK($refresh=''){
  208.     $FANLY_SUBMIT_CHECK = get_transient('FANLY_SUBMIT_CHECK');
  209.     if( $FANLY_SUBMIT_CHECK === false || $refresh) {
  210.         $response = wp_remote_get( 'https://zhan.leiue.com/?plugin=Fanly-Submit', array('timeout' => 10) );
  211.         if (!is_wp_error($response) && $response['response']['code'] == '200' ){
  212.             $FANLY_SUBMIT_CHECK = json_decode( $FANLY_SUBMIT_CHECK['body'] );
  213.         }else{
  214.             $FANLY_SUBMIT_CHECK = '';
  215.         }
  216.         set_transient('FANLY_SUBMIT_CHECK', $FANLY_SUBMIT_CHECK, 86400);
  217.     }
  218.     return $FANLY_SUBMIT_CHECK;
  219. }
  220. //插件设置菜单
  221. add_action('admin_menu', 'fanly_submit_menu');
  222. function fanly_submit_menu() {
  223.     add_submenu_page('options-general.php','百度熊掌号/原创保护', 'Fanly Submit', 'manage_options', 'Fanly_Submit','fanly_submit_options', '');
  224. }
  225. //设置页面
  226. function fanly_submit_options() {
  227.     //Refresh FanlyMIPUA_Check
  228.     if(isset($_POST['updated'])){
  229.         FANLY_SUBMIT_CHECK(true);
  230.     }
  231.     //检测更新
  232.     if( $data = FANLY_SUBMIT_CHECK() ){
  233.         $ver = $data->ver;
  234.         $url = $data->url;
  235.         $plugin_data = get_plugin_data( __FILE__ );
  236.         if($ver > $plugin_data['Version']){
  237.             echo '<div class="notice notice-warning"><p>Fanly Submit 插件已经有新版本啦! <a target="_blank" href="'.$url.'">立即查看</a></p></div>';
  238.         }
  239.     }
  240.     //保存数据
  241.     if(isset($_POST['FanlySubmit'])){
  242.         $APPID      = trim($_POST['APPID']);
  243.         $APPToken   = trim($_POST['APPToken']);
  244.         $xzh        = fanly_submit_test($APPID, $APPToken);
  245.         if( $xzh && @$xzh['success_batch']!=1 ){
  246.             $APPID      = '';
  247.             $APPToken   = '';
  248.         }
  249.         $Fanly = array(
  250.             'APPID'     => $APPID,
  251.             'APPToken'  => $APPToken,
  252.             'Types'     => @$_POST['Types'],
  253.             'Default'   => trim(@$_POST['Default']),
  254.             'Original'  => trim(@$_POST['Original']),
  255.         );
  256.         @update_option('FanlySubmit', $Fanly);//更新选项
  257.         $updated = $APPID ? '设置成功!' : '熊掌号 ID/Token 错误!';
  258.         echo '<div class="updated" id="message"><p>'.$updated.'</p></div>';
  259.     }
  260.     $Fanly      = get_option('FanlySubmit');//获取选项
  261.     $Default    = $Fanly['Default'] !== '' ? 'checked="checked"' : '';
  262.     $Original   = $Fanly['Original']    !== '' ? 'checked="checked"' : '';
  263.     echo '<div class="wrap">';
  264.     echo '<h2>百度熊掌号/原创保护数据推送</h2>';
  265.     echo '<form method="post">';
  266.     echo '<table class="form-table">';
  267.     echo '<tr valign="top">';
  268.     echo '<th scope="row">站点域名</th>';
  269.     echo '<td><input class="all-options" type="text" value="'.home_url().'" disabled /></td>';
  270.     echo '</tr>';
  271.     echo '<tr valign="top">';
  272.     echo '<th scope="row">熊掌号 APPID</th>';
  273.     echo '<td><input class="all-options" type="text" name="APPID" value="'.$Fanly['APPID'].'" /></td>';
  274.     echo '</tr>';
  275.     echo '<tr valign="top">';
  276.     echo '<th scope="row">熊掌号 Token</th>';
  277.     echo '<td><input class="all-options" type="text" name="APPToken" value="'.$Fanly['APPToken'].'" /></td>';
  278.     echo '</tr>';
  279.     echo '<tr valign="top">';
  280.     echo '<th scope="row">文章类型支持</th>';
  281.     echo '<td>';
  282.     $args = array('public' => true,);
  283.     $post_types = get_post_types($args);
  284.     foreach ( $post_types  as $post_type ) {
  285.         if($post_type != 'attachment'){
  286.             $postType = get_post_type_object($post_type);
  287.             echo '<label><input type="checkbox" name="Types[]" value="'.$post_type.'" ';
  288.             if(is_array($Fanly['Types'])) {if(in_array($post_type,$Fanly['Types'])) echo 'checked';}
  289.             echo '>'.$postType->labels->singular_name.' &nbsp; &nbsp; </label>';
  290.         }
  291.     }
  292.     echo '</td></tr>';
  293.     echo '<tr valign="top">';
  294.     echo '<th scope="row">是否默认提交数据</th>';
  295.     echo '<td><label><input value="true" type="checkbox" name="Default" '.$Default.'> 勾选后默认都提交数据到百度熊掌号,文章发布时可修改!</label></td>';
  296.     echo '</tr>';
  297.     echo '<tr valign="top">';
  298.     echo '<th scope="row">是否默认原创</th>';
  299.     echo '<td><label><input value="true" type="checkbox" name="Original" '.$Original.'> 勾选后默认都提交为原创,文章发布时可修改!</label></td>';
  300.     echo '</tr>';
  301.     echo '</table>';
  302.     echo '<p class="submit">';
  303.     echo '<input type="submit" name="FanlySubmit" id="submit" class="button button-primary" value="保存更改" />';
  304.     echo '&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="updated" class="button" value="检测更新" />';
  305.     echo '</p>';
  306.     echo '</form>';
  307.     echo '<p><strong>使用提示</strong><br>
  308.     1.熊掌号 APPID/Token 通过 百度搜索资源平台-熊掌号-API提交-推送接口 > 接口调用地址获取;<br>
  309.     </p>';
  310.     echo '</div>';
  311. }
  312. ?>                                                                                                                                                          以上就是插件内部的所有的代码了,看上去是不是很长的的样子,实际上这么多的代码大小才只有5k的大小,当然如果在代码方面不是动手能力很强的则不需要去关心这些,我们可以的在网站上安装插件即可解决wordpress自动提交到百度熊掌号。

wordpress网址自动提交至百度熊账号插件安装:

1.插件的安装前提是网站页面已成功的进行熊掌号的H5页面或者是mip的改造成功。wordpress主题接入百度熊掌号H5页面改造教程

2.插件获取直接在网上找到此插件即可()也可在直接在此处下载到本地即可。

3.正常安装插件的.zip的压缩包在主题后台的插件安装处即可。插件的安装位置在主题文件夹中的插件安装位置后期如不需要则可以在此处找到删除即可。

wordpress网址自动提交至百度熊账号插件简介:

1.百度熊掌号/原创保护数据推送插件安装成功后需在后台中加入;熊掌号 APPID  和 熊掌号 Token;百度熊掌号获取在百度熊掌号后台中的原创保护栏目中的内容提交下面的接口调用地址: http://data.zz.baidu.com/urls?appid=1580147882157197&token=EE4se8ssF0730BKU&type=realtime,original ,就可以找到相关两个值。

2.百度熊掌号中的原创内容和提交的url可在插件设置中设置以及在文章发布的位置有修改的按钮修改。

以上就是在使用安装wordpress网址自动提交至百度熊掌号插件安装需注意的地方,赶快动手尝试一下!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: