WordPress离线发表文章自动生成别名的教程

54次阅读
2024年06月24日 15:48:09

共计 1419 个字符,预计需要花费 4 分钟才能阅读完成。

多人会把WordPress文章的固定链接设置为postname,也就是自己对每篇文章定义一个别名,作为文章的固定链接。这样使得文章链接更有意义,也有利于SEO优化。

而如果使用离线发布WordPress博客的时候,往往不能直接设置postname,不得不发表到博客后自行修改。

设置固定链接

首先肯定是要设置固定链接包含postname,如果没有这个需要,也就不需要看本文了。在设置-固定链接中将固定链接设置为自定义:/%postname%。

修改WordPress主题

在WordPress主题的functions.php中添加下面的代码。

// 文章自动别名
function post_auto_slug( $postid ) {
    global $wpdb;
 
$sql = "SELECT post_title,post_name FROM $wpdb->posts WHERE ID = '$postid' AND post_type = 'post' AND post_parent = '0'";
    $results = $wpdb->get_results($sql);
if( empty($results) ) {
        return false;
    }
    $post_title = $results[0]->post_title;
    $post_name = $results[0]->post_name;
 
$pos = strrpos( $post_title , '@@' );
if( $pos > 0 ) {
        $slug = substr( $post_title, $pos + 2 );
        if( ! empty( $slug ) ) {
            // 创建唯一的postname
            $post_name_check = true;
            $suffix = 1;
            $after = '';
            $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND ID != '$postid' LIMIT 1";
            while ( $post_name_check ) {
                if ( $suffix > 1 ) {
                    $after = '-' . $suffix;
                }
                $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug . $after ) );
                $suffix++;
            }
            $post_name = $slug . $after;
        }
        $post_title = substr( $post_title, 0, $pos );
        $sql = "UPDATE $wpdb->posts SET post_name = '$post_name', post_title = '$post_title' WHERE ID = '$postid'";        
        $wpdb->query($sql);
}
}
add_action( 'publish_post', 'post_auto_slug' );

发布文章

发布文章时,将文章的标题设置为标题@@postname形式,即可自动处理。如果文章标题中就需要包含@@字符,可以在上面的PHP代码中,将其改成其它分隔符。

前面的post_auto_slug方法的作用是,在文章发布前,将文章标题从@@符号截断为两部分,前面一半作为最终的标题,后面一半设置为postname,且对重复的postname自动添加后缀。例如已经有postname为test的文章,再次发送文章标题@@test,则自动改成test-2的形式。保证每篇文章的postname独一无二,这样才能正常通过网址访问。

正文完
 0
鹿泽
版权声明:本站原创文章,本文由 鹿泽 于 2024年6月24日 15:48:09 发表,共计 1419 字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
最新文章
什么是关键词堆砌?关键词堆砌的位置和坏处有哪些?

什么是关键词堆砌?关键词堆砌的位置和坏处有哪些?

关键字堆砌是一种常见的SEO操作手法,但这其实是低端的SEO行为,对网站排名的帮助微乎其微。想要从本质上解决网...
网站降权的特征判断及恢复

网站降权的特征判断及恢复

网站降权是指搜索引擎对网站评定的级别下降,是搜索引擎对网站进行的一种处罚方式。通常多为网站自身作弊导致的,改正...
seo还好做吗?网站seo具体怎么做优化?

seo还好做吗?网站seo具体怎么做优化?

网站SEO要怎么做优化?新手都会有这样的疑问。下面笔者将通过10年的SEO经验,做出一个详细的解答。 很多人问...
怎么防止优化好的网络推广公司排名忽然下降?

怎么防止优化好的网络推广公司排名忽然下降?

当我们优化我们的网站时,有时我们发现我们优化好的关键词的网络推广公司排名突然变得不稳定。为何会这样?我们能设法...
解读BaiduSpider与站点死链

解读BaiduSpider与站点死链

大家对死链越来越关注,毕竟死链直接关系到网站的抓取收录和流量转化。于是我们整合了之前的内容,又专门对Baidu...