前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >真正完美解决wordpress文章ID不连续问题

真正完美解决wordpress文章ID不连续问题

作者头像
laulzgoay
发布2018-10-10 11:39:47
1.6K0
发布2018-10-10 11:39:47
举报
文章被收录于专栏:小俊博客

WordPress默认情况下发布的文章ID不是连续的,因为自动草稿、文章修订版、页面、菜单、媒体等功能都要占用ID,所以使得ID不连续。百度了一圈,居然有人给出这样的解决方案:“这样如果你只是单纯发文章,不发页面,不添加菜单,不上传媒体的话,基本上此后的文章ID是连续的”,我也是相当无语。

我给出的方案很粗暴,很直接,就是占着茅坑不拉屎。建站规划的时候,就直接生成2000篇文章,保证ID的连续性。

为此,整个过程分为3个步骤:

➤创建Excel包含所有所需的占位文章。

➤将excel导入MySQL表。

➤把步骤2中的MySQL表导入WordPress post表。

创建一个Excel包含所有所需的帖子。

首先我们来创建一个包含2列的excel:

  文章标题   文章内容

然后把整个execl文件另存为CSV逗号分隔符文件。 现在我们就有了近2000篇文章,只要想办法导入到wordpress里面就行了。

将excel导入MySQL

在wordpress数据库中创建一个MySQL表:一个包含2个字段的表'allpost' 登录mysql,执行以下语句:

代码语言:javascript
复制
CREATE TABLE `wordpress`.`allpost` ( `post_title` VARCHAR(50) NOT NULL , `post_content` VARCHAR(200) NOT NULL ) ENGINE = InnoDB;
删除测试页面和自动草稿。
DELETE FROM `bk_posts` WHERE `bk_posts`.`ID` = 2;
DELETE FROM `bk_posts` WHERE `bk_posts`.`ID` = 3;

重启一下mysql,让其释放ID。

使用phpmyadmin导入Excel到MySQL

浏览上传CSV文件后,其他的选项都不要动,只要注意“字段分隔符”那里是一个英文的逗号就行了。然后点击执行。

此时,我们已经把2000篇文章导入到allpost表。现在要做的就是利用wordpress自带的函数wp_insert_post把文章写入wp_posts表。 这个函数的用法:

代码语言:javascript
复制
$thepost = array(
'post_title' =>; 'Post title',
'post_content' =>; 'Post content',
'post_status' =>; 'publish',
'post_author' =>; 1,
'post_category' =>; array(1,2)
);
wp_insert_post( $thepost );

这里我们要注意的是post_status,文章状态不能是已发布(publish),得是草稿状态(draft)。

由于我们需要从MySQL表创建所有的文章,我们需要使用一个while循环,这样我们创建一个createpost.php,代码如下:

代码语言:javascript
复制
<?php
//the line below is connect to the wordpress database
require('./wp-blog-header.php');

$con = mysql_connect("localhost","root","textpass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }


 
//select all from table allpost and loop through one by one record
$result = mysql_query("SELECT * FROM wordpress.allpost",$con) or die(mysql_error());  
while($line = mysql_fetch_array( $result )) {
//create post
$thepost = array(
     'post_title' => $line['post_title'],
     'post_content' => $line['post_content'],
     'post_status' => 'draft',
     'post_author' => 1,
     'post_category' => array(1,2)
  );
wp_insert_post( $thepost );
}
?>

上述代码只适用于PHP5.X及以下的版本,因为PHP7.X里面已经没有mysql_connect等函数。 把这个createpost.php放到wordpress网站根目录,chomd +x后,/usr/local/php/bin/php createpost.php,稍等一小会,大功告成。

确认文章ID情况 登录mysql,use到博客数据库,执行如下命令,id和GUID一一对应为成功。

此时,如果有人要问,这么多文章,真正要写文章的时候,在所有文章页面翻页也是个麻烦事。 人是活的,比方说,你文章写到第666篇了,登录后台后,你直接访问 https://yourdomian/666.html

本文编辑修改自笛声的真正完美解决wordpress文章ID不连续问题

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年9月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 将excel导入MySQL
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档