让代码更简单

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

重要:本文最后更新于2018-12-21 09:13:28,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

一直在传言熊掌号已经被百度放弃了,但是熊掌号提高收录速度的功能仍在,所以我们不能放弃它。前面也发过关于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代码实现提交链接到熊掌号带后台面板

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代码实现提交链接到熊掌号带后台面板

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

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

感觉很棒!可以赞赏支持我哟~

1 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐