• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    WordPress代码实现提交链接到熊掌号带后台面板【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 一直在传言熊掌号已经被百度放弃了,但是熊掌号提高收录速度的功能仍在,所以我们不能放弃它。前面也发过关于WordPress代码实现提交链接到熊掌号,有网友反馈说不能看到推送成功没有,今天完善下上次的代码,增加个后台面板,可以自己选择要不要推送。代码十分可靠,大前端出品,我扒了一部分出来,其实里面的核心部分就是熊掌号提供的PHP推送示例,大家有兴趣可以去看看熊掌号官方的例子。

      熊掌号面板实现

      WordPress后台面板的使用方法以及讲过了,可以参考这篇文章:为WordPress文章后台新增字段面板,这里就不多做说明,咱们直接进入正题。在你的主题functions.php文件中,新增如下代码:

      //熊掌号面板配置
      $postmeta_xzh = array(
      array(
      "title" => "原创文章",
      "name" => "is_original",
      "std" => ""
      )
      );
      //熊掌号推送面板
      function hui_postmeta_xzh() {
      global $post, $postmeta_xzh;
      foreach($postmeta_xzh as $meta_box) {
      $meta_box_value = get_post_meta($post->ID, $meta_box['name'], true);
      if($meta_box_value == "")
      $meta_box_value = $meta_box['std'];
      echo '<p><label><input '.($meta_box_value?'checked':'').' type="checkbox" value="1" name="'.$meta_box['name'].'"> '.(isset($meta_box['title']) ? $meta_box['title'] : '').'</label></p>';
      }
      $tui = get_post_meta($post->ID, 'xzh_tui_back', true);
      if( $tui ) echo '<p>实时推送结果:'.$tui.'</p>';
      
      echo '<input type="hidden" name="post_newmetaboxes_noncename" id="post_newmetaboxes_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
      }
      //创建面板,其实是调用了上面的方法
      function hui_postmeta_xzh_create() {
      global $theme_name;
      if ( function_exists('add_meta_box') ) {
      add_meta_box( 'postmeta_xzh_boxes', __('百度熊掌号设置', 'haoui'), 'hui_postmeta_xzh', 'post', 'normal', 'high' );
      }
      }
      //数据保存
      function hui_postmeta_xzh_save( $post_id ) {
      global $postmeta_xzh;
      
      if ( !wp_verify_nonce( isset($_POST['post_newmetaboxes_noncename'])?$_POST['post_newmetaboxes_noncename']:'', plugin_basename(__FILE__) ))
      return;
      
      if ( !current_user_can( 'edit_posts', $post_id ))
      return;
      
      foreach($postmeta_xzh as $meta_box) {
      $data = isset($_POST[$meta_box['name']]) ? $_POST[$meta_box['name']] : '';
      if(get_post_meta($post_id, $meta_box['name']) == "")
      add_post_meta($post_id, $meta_box['name'], $data, true);
      elseif($data != get_post_meta($post_id, $meta_box['name'], true))
      update_post_meta($post_id, $meta_box['name'], $data);
      elseif($data == "")
      delete_post_meta($post_id, $meta_box['name'], get_post_meta($post_id, $meta_box['name'], true));
      }
      }
      //使用钩子创建面板
      add_action('admin_menu', 'hui_postmeta_xzh_create');
      //使用钩子,当文章保存时保存熊掌号配置数据
      add_action('save_post', 'hui_postmeta_xzh_save');

      到此我们在WordPress后台发布文章页面就可以看到一个关于熊掌号设置的面板,但没有实际功能,面板如下:

      WordPress代码实现提交链接到熊掌号带后台面板

      熊掌号提交代码

      接着在刚刚的functions.php代码中添加如下代码:

      // 熊掌号 新文章发布时实时推送
      add_action('publish_post', 'tb_xzh_post_to_baidu');
      //使用钩子在发布文章时执行下面的函数
      function tb_xzh_post_to_baidu() {
      $appid="111";//熊掌号appid
      $token="222";//熊掌号token
      	    global $post;
      	    $plink = get_permalink($post->ID);
      	    if( 'publish' !== $post->post_status && $plink ){
      	    	$isoriginal = get_post_meta($post->ID, 'is_original', true);
      		    $urls = array();
      		    $urls[] = $plink;
      			$api = 'http://data.zz.baidu.com/urls?appid='. $appid .'&token='.$token .'&type=realtime';
      			
      			if( $isoriginal ){
      		    	$api .= ',original';
      		    }
      			$ch = curl_init();
      			$options =  array(
      			    CURLOPT_URL => $api,
      			    CURLOPT_POST => true,
      			    CURLOPT_RETURNTRANSFER => true,
      			    CURLOPT_POSTFIELDS => implode("\n", $urls),
      			    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
      			);
      			curl_setopt_array($ch, $options);
      			$result = curl_exec($ch);
      			$result = json_decode($result);
      			$result_text = '成功';
      			if( $result->error ){
      				$result_text = '失败 '.$result->message;
      			}
      			update_post_meta($post->ID, 'xzh_tui_back', $result_text);
      		}
      }

      只需要把其中的熊掌号配置改为你自己的就好了,实际效果如下:

      WordPress代码实现提交链接到熊掌号带后台面板

      我乱填的appid与token所以反馈的是token错误。这篇WordPress纯代码实现提交数据到熊掌号带面板的教程到此结束了,以后估计不写这类的了,网上这类教程很多,都差不多。

      你需要登录,才能进行发帖操作