WordPress 代码 实现自动发布文章内容推送百度加快收录

在我们以前发布文章就自动推送到百度熊掌号中,不过近期百度已经将移动专区的天级收录功能下线了,改为快速收录功能,连 API 也改了,所以我们以前自动推送给熊掌号的代码已经无效,需要调整其中的 API 接口等内容。今天跟大家分享 WordPress 站点如何用代码实现发布文章即主动推送到百度快速收录中。

将以下代码添加到主题中functions.php文件中

代码

if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = 'token值'; //这里换成你的网站的百度主动推送的token值
$WEB_DOMAIN = get_option('home');
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
if (array_key_exists('success',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
}

使用说明

  1. $WEB_TOKEN =‘token值’;这里请换成你的网站的百度主动推送的token值到https://ziyuan.baidu.com上选择你的站点!
  2. 点击连接提交进入后自动提交–主动推送(实时)–推送接口接口调用地址:http://data.zz.baidu.com/urls?site=https://www.aabbj.com&token=xxxxxxxxxx添加完成后,发布文章成功后,如果主动推送成功就在文章自定义栏目里有一个Baidusubmit值为1代表发布成功!

WordPress登录后才可以查看网站内容,代码

wordpress登录才能查看网站内容,未登录就跳转到登录页面。有这样需求的人还不少,有的可能是资料类什么的,有的人就是用来搞擦边球。

实现代码很简单,找一个全站一定会执行的钩子即可,这里我们就选了一个template_redirect钩子,这个动作钩子在加载模板时执行,当然其它很多都可以用。

<?php
//template_redirect动作钩子是一定会执行的,所以用这个钩子对全站有效
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
  //判断登录
  if( !is_user_logged_in() ){
    auth_redirect(); //跳转到登录页面
        exit();
  }
}

原代码只允许未登录者访问指定的页面或者直接跳转到登录。

简单改一下,加个判断in_category,只允许访问指定分类的归档页面和文章。

// 首页和指定分类文章可以访问
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
	//判断登录,只允许访问ID为3和2的分类文章
	if( !in_category( array( 3,2 ) ) && !is_home() && !is_user_logged_in() ){
		auth_redirect(); //跳转到登录页面
		exit();
	}
}

默认未登录者只允许访问网站首页和分类id为3和2的分类归档页面和文章,否则跳转到登录页面。

把 !in_category 前面的感叹号去掉改成 in_category,则正好相反,访问分类ID为3和2的分类文章跳转到登录,其它文章可以正常访问。

使用方法

代码添加到主题函数模板functions.php中。

纯代码实现修改WordPress鼠标指针

大家是不是在访问别人的博客或者网站时,发现鼠标的指针就变了,变得很个性,今天西瓜君就教大家如何修改wordpress的鼠标指针

[wm_notice]哈哈 你发现鼠标指针是不是很特别[/wm_notice]

一、鼠标指针图标的制作

1.大家可以在ps里面制作上一个,个性的鼠标指针也是可以的,制作好后最后保存成png格式即可,下面是我给大家制作的一个可爱的鼠标指针,喜欢就拿走。

2.或者可以在网上下载一些鼠标指针,也是可以的(自己动手丰衣足食)。

二、修改主题的style.css文件

1.vieu主题设置方法直接在后台 主题设置-自定义代码-css样式里面添加保存。

2.其他wp主题直接把以上的css代码放入style.css文件即可

代码

//body里面的样式
body {
    cursor: url(鼠标指针的图片链接), auto;
}
//a标签的样式
a:hover {
    cursor: url(鼠标指针的图片链接), auto;
}

[wm_warn]切记:保存后,清理浏览器缓存,即可实现效果[/wm_warn]

给WordPress主题增加一个点赞功能

大部分WordPress主题都没有带点赞功能,今天西瓜君给大家分享出来,请看下面纤细教程

[wm_tips]可以通过 ajax 实时显示点赞数量,自定义字段保存赞数量,Cookies 禁止重新点赞。 而且运用 cookies 有效的解决了重复点赞 bug[/wm_tips]

效果图

第一步

将下面代码添加进 function.php


/*加一个点赞功能*/
    add_action('wp_ajax_nopriv_bigfa_like', 'bigfa_like');

    add_action('wp_ajax_bigfa_like', 'bigfa_like');

    function bigfa_like(){

        global $wpdb,$post;

        $id = $_POST["um_id"];

        $action = $_POST["um_action"];

        if ( $action == 'ding'){

        $bigfa_raters = get_post_meta($id,'bigfa_ding',true);

        $expire = time() + 99999999;

        $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; // make cookies work with localhost

        setcookie('bigfa_ding_'.$id,$id,$expire,'/',$domain,false);

        if (!$bigfa_raters || !is_numeric($bigfa_raters)) {

            update_post_meta($id, 'bigfa_ding', 1);

        } 

        else {

                update_post_meta($id, 'bigfa_ding', ($bigfa_raters + 1));

            }

     

        echo get_post_meta($id,'bigfa_ding',true);

     

        } 

     

        die;

    }

第二步

将以下代码放进 footer.php 文件

 <!--加一个点赞的功能-->
     <script type="text/javascript">

    $.fn.postLike = function() {

        if ($(this).hasClass('done')) {

            return false;

        } else {

            $(this).addClass('done');

            var id = $(this).data("id"),

            action = $(this).data('action'),

            rateHolder = $(this).children('.count');

            var ajax_data = {

                action: "bigfa_like",

                um_id: id,

                um_action: action

            };

            $.post("/wp-admin/admin-ajax.php", ajax_data,

            function(data) {

                $(rateHolder).html(data);

            });

            return false;

        }

    };

    $(document).on("click", ".favorite",

    function() {

        $(this).postLike();

    });

    </script>
    <!--加一个点赞的功能--结束-->

第三步

修改文章页面。正常在 single.php 文件,部分主题文件名称不一致,需要自行搜索,总之在你想要添加的地方,加入下列代码就OK:

<!--点赞功能开始-->
 <div class="post-like">
     <a href="javascript:;" data-action="ding" data-id="<?php the_ID(); ?>" class="favorite<?php if(isset($_COOKIE['bigfa_ding_'.$post->ID])) echo ' done';?>">喜欢 <span class="count">

       <?php if( get_post_meta($post->ID,'bigfa_ding',true) ){            

           echo get_post_meta($post->ID,'bigfa_ding',true);

       } else {

           echo '0';

       }?>

    </span>

    </a>
    </div>
    <!--点赞功能结束-->

第四步

将下面css扔进 style.css 文件:


/*点赞功能美化开始*/
    .post-like{text-align:center;padding:10px}

  .post-like a {
    background-color: #21759B;
    border-radius: 20px;
    color: #FFFFFF;
    font-size: 15px;
    padding: 10px 10px;
    text-decoration: none;
    outline: none;
}

.post-like a.done, .post-like a:hover {
    background-color: #F44336;
    color: #ffffff;
}

    .post-like a.done{cursor:not-allowed}
/*点赞功能美化结束*/

 

【wordpress代码】实现文章显示是否已被百度收录


有些天有用户问我,网站当中显示的“百度已收录”是怎么实现的,我告诉他,是通过插件实现的,这个插件。但是用户却说这么简单的功能如果可以利用代码实现就好了,毕竟文章页显示百度已收录这个功能不是个难事,所以为了朋友的嘱咐,西瓜君就给大家来找。

代码

function xintheme_checkBaidu($url) { 
    $url = 'http://www.baidu.com/s?wd=' . urlencode($url); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $rs = curl_exec($curl); 
    curl_close($curl); 
    if (!strpos($rs, '没有找到')) { //没有找到说明已被百度收录 
        return '百度已收录'; 
    } else { 
        return '百度未收录'; 
    } 
}

[wm_notice]将以上代码粘贴到您主题的function.php文件当中[/wm_notice]
编辑当前WordPress主题的single.php文件,在要显示收录提示的位置添加以下调用代码:

代码

<?php echo checkBaidu(get_the_permalink());?>

【wordpress代码】实现代码插入文章id自动内链接

[wm_red]介绍[/wm_red]
在WordPress的编辑器当中有一个超链接按钮,可以实现在其中搜索文章然后插入即可,但是有一点不好的是,这种插入的方法文章只有一个标题,并且改标题也仅仅是一个超链接文本的形式存在,如果当想要在这个自动插入的内链文本中自定义文本的语义化的时候就需要手动去设置文本的html语义化。


西瓜君今天在网络上突然发现一段神奇的代码,可以实现将文章ID插入到文章当中自动获取文章标题以及图片还有描述等信息。

代码

//给文章加内链短代码
function gdk_insert_temp($atts, $content = null) {
    extract(shortcode_atts(array( 'id' => '' ) , $atts));
    $data = get_post($id);
    $content = $data->post_content;
    return $content;
}
add_shortcode('temp', 'gdk_insert_temp');
function fa_insert_posts( $atts, $content = null ){
    extract( shortcode_atts( array(
 
        'ids' => ''
 
    ),
        $atts ) );
    global $post;
    $content = '';
    $postids =  explode(',', $ids);
    $inset_posts = get_posts(array('post__in'=>$postids));
    foreach ($inset_posts as $key => $post) {
        setup_postdata( $post );
        $content .=  '<div class="card-today-history"><div class="card-thContents"><div class="card-thLine"></div><div class="card-thHeroTitle"><a target="_blank" class="label--thTitle" href="' . get_permalink() . '">' . get_the_title() . '</a><div class="v-floatRight card-thMeta">' . get_comments_number(). '<i class="iconfont icon-comment"></i></div></div></div></div>';
    }
    wp_reset_postdata();
    return $content;
}
add_shortcode('fa_insert_post', 'fa_insert_posts');

[wm_red]使用方法[/wm_red]

将以上代码粘贴到您主题的function.php文件中的最后一行就可以了。

至于调用就非常简单了,直接使用短代码[fa_insert_post ids=123,245]即可,如果你不是在文章内容中,而是在其他地方想调用,则可使用do_shortcode('[fa_insert_post ids=123,245]')来调用。

【wordpress代码】给评论框添加一条随机语录

[wm_kuang title="摘要"]今天西瓜君给大家分享给wordpress博客评论框添加一条随机语录[/wm_kuang]

[wm_blue]效果图[/wm_blue]

[wm_blue]代码[/wm_blue]

<!---评论一言--->
<script>
$.getJSON("https://api.ly522.com/yan.php?format=json",function(data){
$("#comment").text(data.text);
});
$(function(){
$("#comment").click(function() {
$(this).select();
})
})
</script>

如果是和西瓜君一样使用的vieu主题,可以直接添加到header、footer位置上即可使用,如果使用其他主题你的评论框id不是comment,则需要修改,首先右键评论框-审查元素-查看id或者class,选其一即可,之后把获取的id或者class替换到上述代码中的#conment

【wordpress代码】自动给新文章添加已经使用过的标签

wordpress每次都要手动给文章添加标签,很麻烦?不知文章是否出现以前用过的标签,怎么办?以下代码就可以解决这些问题,它会在你发布/保存文章时,检测文章的内容中,是否出现曾经使用过的标签,如果出现,就自动为文章添加这些标签。
[wm_notice]以下有三个版本自行选择[/wm_notice]
[wm_blue]将代码添加到主题的 functions.php 即可[/wm_blue]

代码

/**
* WordPress 自动为文章添加已使用过的标签
* https://www.wpdaxue.com/auto-add-tags.html
*/
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
$tags = get_tags( array('hide_empty' => false) );
$post_id = get_the_ID();
$post_content = get_post($post_id)->post_content;
if ($tags) {
foreach ( $tags as $tag ) {
// 如果文章内容出现了已使用过的标签,自动添加这些标签
if ( strpos($post_content, $tag->name) !== false)
wp_set_post_tags( $post_id, $tag->name, true );
}
}
}

[wm_blue]修改后可控制标签输出数量[/wm_blue]

代码

// WordPress 自动为文章添加已使用过的标签
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
$tags = get_tags( array('hide_empty' => false) );
$post_id = get_the_ID();
$post_content = get_post($post_id)->post_content;
if ($tags) {
$i = 0;
foreach ( $tags as $tag ) {
// 如果文章内容出现了已使用过的标签,自动添加这些标签
if ( strpos($post_content, $tag->name) !== false){
if ($i == 5) { // 控制输出数量
break;
}
wp_set_post_tags( $post_id, $tag->name, true );
$i++;
}
}
}
}

[wm_xuk]但这样输出,会默认输出前几个标签,考虑到每次输出都是标签库里面的前几个标签,不利于 SEO ,增加了标签打乱功能。[/wm_xuk]
[wm_blue]标签打乱增强版[/wm_blue]

代码

// WordPress 自动为文章添加已使用过的标签
function array2object($array) { // 数组转对象
if (is_array($array)) {
$obj = new StdClass();
foreach ($array as $key => $val){
$obj->$key = $val;
}
}
else {
$obj = $array;
}
return $obj;
}
function object2array($object) { // 对象转数组
if (is_object($object)) {
foreach ($object as $key => $value) {
$array[$key] = $value;
}
}
else {
$array = $object;
}
return $array;
}
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
$tags = get_tags( array('hide_empty' => false) );
$post_id = get_the_ID();
$post_content = get_post($post_id)->post_content;
if ($tags) {
$i = 0;
$arrs = object2array($tags);shuffle($arrs);$tags = array2object($arrs);// 打乱顺序
foreach ( $tags as $tag ) {
// 如果文章内容出现了已使用过的标签,自动添加这些标签
if ( strpos($post_content, $tag->name) !== false){
if ($i == 5) { // 控制输出数量
break;
}
wp_set_post_tags( $post_id, $tag->name, true );
$i++;
}
}
}
}