标签归档:wordpress

WordPress如何从页面头部去掉shortlink短链接

最近做Wordpress网站优化的时候,碰到一个问题,就是百度搜索引擎不仅收录了设置的好的链接,还会收录shortlink短链接。

这两个链接的页面内容一样,虽然做了301重定向和canonical,但是百度还是会收录短链接,这短链接怎么去掉呢?方法其实很简单。

Wordpress如何从页面头部去掉shortlink短链接
WordPress如何从页面头部去掉shortlink短链接

WordPress 的shortlink功能是一种内置的功能,用于在页面头部添加一个短链接(Shortlink),用于代替长链接(Permalink)。也就是通过在域名后面加?p=123就能访问对 ID 为 123 的文章。

这对通过遍历ID采集网站文章,提供了非常方便的条件,因此建议从页面头部移除 shortlink 链接,并禁止通过 ?p=123 获取文章。

那么,怎么去掉短链接呢?

只需要在主题的functions.php文件中加入以下代码就可以去掉了。

remove_action('wp_head', 'wp_shortlink_wp_head');

是不是很简单,之前一直想去掉,在偶尔一次机会中碰到这个事情,就解决了。

当然,如果上面的代码不行的话,还有其他办法,也是在主题的functions.php文件中加入代码,代码如下:

function remove_shortlink() {
    return false;
}
add_filter('pre_get_shortlink', 'remove_shortlink');

这样就轻松去掉了Wordpress页面头部shortlink短链接了,当然很多人还会有其他要求,比如让短链接打不开,跳转到404页面。

这样也是可以的,打算不建议做,如果你非要这么做的话,也可以,在主题的functions.php文件中加入以下代码。

add_filter('redirect_canonical', 'disable_shortlink_redirect', 10, 2);
function disable_shortlink_redirect($redirect_url, $requested_url) {
    if (preg_match('/\?p=[0-9]+$/', $requested_url)) {
        status_header(404);
        nocache_headers();
        include(get_query_template('404'));
        die;
    }
    return $redirect_url;
}

这样的话,shortlink短链接就变成404页面,打不开了。

WordPress的wp_footer在哪个文件夹

有个客户的网站老是被黑,之前也讲过关于网站老是被黑了怎么办?用文章中的办法,还真的找到了解决方法。只是有一个文件找了很久,那就是wp_footer,因为黑客把js文件,写入到wp_footer里面了。

如果网站被黑,那么基本上都是网站文件里面写入了js代码,只要你去查看网页源代码,就可以看到哪个js代码是异常的,只需要把这个js删除就可以了。

WordPress的wp_footer在哪个文件夹
WordPress的wp_footer在哪个文件夹

客户这个网站就是被人把js文件写入了以下代码中:

<?php wp_footer(); ?>

WordPress的wp_footer在哪个文件夹呢?找了很久终于找到了,在/wp-includes/general-template.php,所以只要找到对应的代码,把js删除就可以了。

触发wp_footer的函数如下:

function wp_footer() {
    /**
     * Prints scripts or data before the closing body tag on the front end.
     *
     * @since 1.5.1
     */
    do_action( 'wp_footer' );
}

所以,以后碰到wordpress被人恶意加入js的,只要找到js文件,把js删除就可以了。

同时,大家可以关闭ftp,并且修改ftp密码,防止别人再黑你的网站。

WordPress边栏调取指定栏目文章的插件

WordPress程序是非常牛逼的,其中最牛逼的还算wordpress插件,我们在做博客的时候,就会经常碰到一个问题,比如我的栏目很多,我想再边栏调取指定栏目下的文章列表,怎么调取呢?

用过Wordpress的人都知道,Wordpress首页除了调取最新文章,就没有调取指定栏目的文章,小编研究了好几个月,终于发现了一个插件,就简单的解决了这个问题。

这个插件名称叫List category posts,只需要下载安装,然后启动就可以使用了。

启动后具体怎么使用呢?操作如下:

点击外观,进入小工具,小工具就有List category posts选项,直接拉进边栏,然后操作就可以了,截图如下:

Wordpress边栏调取指定栏目文章的插件
WordPress边栏调取指定栏目文章的插件

操作很简答,完全是傻瓜式操作,就可以实现了边栏调取指定栏目下的文章列表,效果如下(也可见本博客首页边栏):

Wordpress边栏调取指定栏目文章的插件
WordPress边栏调取指定栏目文章的插件

通过上面的操作,就实现了,本人亲测有效,实现边栏调取特定栏目下的文章列表,就说这么简单,希望对你有帮助。

WordPress搬家后怎么修改域名

WordPress搬家我想大家都会了,这里还是简单讲解下WordPress怎么搬家?主要有以下几个步骤。

WordPress搬家后怎么修改域名

第一步:把原网站整体打包下来,包含程序和数据库。

第二步:把下载下来的程序和数据库上传到新的服务器。

第三步:在config.php修改数据库用户名和密码。

第四步:绑定域名,就可以正常打开。

安装以上操作,就可以搬家成功了,搬家之后,会出现一个问题,那就是WordPress修改域名,把之前的老域名怎么修改成新域名呢?

办法很简单,只需要在SQL运行一个口令就可以了,代码如下:

UPDATE wp_options SET option_value = replace( option_value, '老域名', '新域名') WHERE option_name = 'home' OR option_name ='siteurl';

这样,就可以把老域名换成新域名了,本人亲测有效。

WordPress批量替换内容插件WPReplace

有时候,我们用Wordpress搭建的网站或者博客,需要批量替换内容或者关键词,那么怎么办呢?如果懂数据库的话,可以直接使用数据库命令去替换。

如果不懂数据库,那怎么办呢?只需要一个插件就可以实现,插件名称叫Wordpress批量替换内容插件WPReplace。

在安装插件里面,搜索WPReplace,下载安装,开启就可以了。安装之后怎么操作呢?很简答,后台的左侧设置里面打开WPReplace设置,看下图WPReplace操作面板。

Wordpress批量替换内容插件WPReplace
WordPress批量替换内容插件WPReplace

看上去,是不是很简答,只需要一个插件,就可以完成内容替换了。

这个工具一般很少用到,但是万一需要使用的话,也可以用到,以备不时之需。

在使用内容批量替换的时候,一定要谨慎操作,如果把内容搞乱了,就很难恢复,再替换回去,又会把其他很多没替换的文字替换了,所以在替换之前,三思而后行!

WordPress友情链接只在首页显示

我们在做网站优化的时候,会和别人交换友情链接,友情链接的位置一般都是用小工具,显示在网站的左侧或右侧,这个显示就会在全站上有,那么怎么让友情链接只在首页展示呢?

Wordpress友情链接展示
WordPress友情链接展示

其实办法很简单,只需要按照一个插件就可以实现了,插件名:Widget Options,下载安装就可以了。

Widget Options插件的控制面板,截图如下:

Wordpress友情链接只在首页显示
WordPress友情链接只在首页显示

上面英文的意思就是网友情链接只显示在首页,其他页面不显示。

这个插件真的很好用,在建设内链的时候,可以用到这个插件,让网站的内链建设更有条理,也更清晰。

关于Wordpress搭建的博客网站的友情链接只显示在首页的内容,就简单讲这些,希望能够帮到您。

WordPress自动检测文章标题重复

WordPress在发布文章的时候,我们可能会把一样的文章标题发布出去,做seo的人都知道,文章标题重复,对于seo优化不利,那么怎么才能防止文章标题重复的事情呢?

那么,Wordpress怎么自动检测文章标题重复呢?办法很简答,可以使用插件页可以使用代码直接到达想要的效果,这里不推荐使用插件,使用插件会使网站的加载速度变慢。

强烈推荐使用代码实现Wordpress自动检测文章标题重复的事情,使用了这个办法,文章不会发布出去,会自动保存到草稿箱。

Wordpress自动检测文章标题重复
WordPress自动检测文章标题重复

办法很简单,就是在主题的functions.php文件底部,加入以下代码(加代码之前,备份下functions.php文件):

/**
 * 发表文章时禁止与已存在的标题相重复
 * Modify from Plugin: Duplicate Title Validate
 * Description: this plugin help , not allow publish Duplicate Title . 
 * Author: ziw
 * Reviser: ziw
 * Version: 1.0
 * Author URI:https://www.seoziw.com
 * Reviser URI: https://www.seoziw.com
 */
// 发表文章页面,前端抓取标题并使用AJAX发送请求
add_action( 'admin_print_footer_scripts', 'duplicate_titles_enqueue_scripts', 100 );
function duplicate_titles_enqueue_scripts() {
?>
<script>
jQuery(function($){
    function checkTitleAjax(title, id,post_type) {
        var data = {
            action: 'title_checks',
            post_title: title,
            post_type: post_type,
            post_id: id
        };
        $.post(ajaxurl, data, function(response) {
            $('#message').remove();
            $('#poststuff').prepend('<div id=\"message\" class=\"updated below-h2 fade \"><p>'+response+'</p></div>');
        }); 
    };
    $('#title').change(function() {
        var title = $('#title').val();
        var id = $('#post_ID').val();
        var post_type = $('#post_type').val();
        checkTitleAjax(title, id,post_type);
    });
 
});
</script>
<?php
}
    
 
 
// 接收前端ajax参数
add_action('wp_ajax_title_checks', 'duplicate_title_checks_callback');
function duplicate_title_checks_callback(){ 
    global $wpdb;            
    $title = $_POST['post_title'];
    $post_id = $_POST['post_id']; 
    $titles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
                AND post_title = '{$title}' AND ID != {$post_id} "; 
    $results = $wpdb->get_results($titles); 
    if($results) {
        echo "<span style='color:red'>". _( '此标题已存在,请换一个标题!' , '' ) ." </span>";
    } else {
        echo '<span style="color:green">'._('恭喜,此标题未与其他文章标题重复!' , '').'</span>';
    } 
    die();
}
 
// 检测后端标题并且避免同名文章更新草稿
add_action( 'publish_post','duplicate_titles_wallfa_bc' ) ;
function duplicate_titles_wallfa_bc( $post ){
    global $wpdb ;
    $title = $_POST['post_title'] ;
    $post_id = $post ; 
    $wtitles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
                        AND post_title = '{$title}' AND ID != {$post_id} " ; 
    $wresults = $wpdb->get_results( $wtitles ) ; 
    if ( $wresults ){
        $wpdb->update( $wpdb->posts, array( 'post_status' =>
                'draft' ), array( 'ID' => $post ) ) ;
        $arr_params = array( 'message' => '10', 'wallfaerror' => '1' )  ;      
        $location = add_query_arg( $arr_params , get_edit_post_link( $post , 'url' ) ) ;
        wp_redirect( $location  ) ;        
        exit ;
    }
}
 
 
 
/// 文章提交更新后的提示
add_action( 'admin_notices', 'not_published_error_notice' );   
function not_published_error_notice() {
    if(isset($_GET['wallfaerror']) == 1 ){
       ?>
       <div class="updated">
       <p style='color:red' ><?php _e('貌似已经存在相同标题的文章,若您使用了文章别名作为固定链接,则可以通过修改本文的固定链接来使标题不再重复!' , '') ?></p>
       </div>
       <?php
    }
}
// 禁用自动保存
add_action( 'wp_print_scripts', 'disable_autosave' ) ;
function disable_autosave(){
    wp_deregister_script( 'autosave' ) ;
}

通过以上的操作,就可以实现自动检测文章标题重复的事情了,您可以去后台测试下,这里需要说明的是,如果您使用了All in One SEO这个插件的话,可能会出现后台控制面板不兼容的情况,应该把All in One SEO插件暂停下测试。

但是在暂停All in One SEO的时候,一定不要影响网站其他方面,需要谨慎操作。

WordPress文章列表修改成页码分页插件

最近一直在研究Wordpress文章列表页的事情,WP文章列表页的形式是早期文章或者较早文章,不说那种页码分页的形式。

今天,我们就来把Wordpress的文章列表页修改成页码,效果图如下。

Wordpress文章列表修改成页码
WordPress文章列表修改成页码

想实现上图效果,只需要一个wp插件就可以实现,插件名叫WP-PageNavi,只需要下载安装就可以了。

Wordpress分页
WordPress分页

然后,去修改模板文件里面的functions.php文件就可以,修改步骤如下。

查找代码:

<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>

修改成:

<?php wp_pagenavi(); ?>

每个模板对于的模板名词不一样,只要找到nav-previous和nav-next就可以了。

对于多页页面,您将查找如下代码:

<?php wp_link_pages( ... ); ?>

修改成:

<?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>

这样,就完成了Wordpress文章列表修改成页码分页的功能了,只需要一个插件,加修改一点代码,就可以实现了。

WordPress插件功能还是非常强大的,你学会了吗?

WordPress面包屑导航插件软件推荐

今天简单分享下Wordpress面包屑导航的设置方法,只要一个软件就要做好Wordpress面包屑导航,这个软件就是Breadcrumb NavXT,使用方法很简单。

WordPress面包屑导航插件
WordPress面包屑导航插件

第一步,下载安装Breadcrumb NavXT插件。

第二步,在外观主题编辑器里面,对于的位置添加以下代码,就可以完成Wordpress面包屑导航设置。

<div class="breadcrumbs">  
<?php  
if(function_exists('bcn_display')){  
    bcn_display();  
}  
?>  
</div>

第三步,完成设置,如下图。

面包屑导航

到这里,就完成了Wordpress面包屑导航的设置,一个Breadcrumb NavXT插件就是搞定了,Wordpress的插件功能是非常强大。

wordpress面包屑导航插件Breadcrumb NavXT

今天,在研究博客面包屑的时候,想到了Breadcrumb NavXT插件,通过这个插件,就可以实现Wordpress面包屑了。

方法很简单,就是去下载安装Breadcrumb NavXT插件,然后开启就可以了。

wordpress面包屑导航插件
wordpress面包屑导航插件

开启之后,怎么部署面包屑呢?只要将以下代码加到head.php文件里就可以了。

<div class="breadcrumbs">  
<?php  
if(function_exists('bcn_display')){  
    bcn_display();  
}  
?>  
</div>  

但是会碰到一个问题,就是加到head.php文件里,那么所有的页面都有面包屑了,包括首页也有面包屑。

一般情况下,首页是不需要面包屑的,那么怎么把呢?

只能将以上代码,分别加入到对应的模板php文件里,只需要首页不加这段代码,就可以实现了。