WordPress文章 ID 不连续的解决方法
自从 WordPress3.0 发布之后,WordPress的自动保存,草稿功能以及版本历史功能导致文章 ID 不连续的问题又重新出现了。因为在这之前的解决方法都失效了,原先很好用的 disable revisions and autosave 插件也很长时间没有跟进更新了。
不过,好在使用 WordPress 的高手很多,出现问题总会有解决的方法。ForRSS 博客的博主就很好解决了 WordPress 文章 ID 不连续的问题。方法如下:
首先打开wp-config.php文件,在$table_prefix = ‘wp_’;前面添加代码
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', false);
然后找到并打开wp-admin\post-new.php(第46行)和wp-admin\post.php(第177行)这两个文件,将其wp_enqueue_script(‘autosave’);注释或删除掉
//wp_enqueue_script('autosave');
最后找到并打开wp-admin\includes\post.php文件,找到if ( $create_in_db ),在它的前一行添加$create_in_db = false;
$create_in_db = false;
if ( $create_in_db ) {
问题虽然解决了,但是这种修改WordPress源代码的方法是很不好,这会导致以后每次WordPress升级,都需要维护修改一次,不如用插件的方式解决,可惜目前实在找不到合适的插件来解决这个问题。
一条评论
如果已经知道 ID,我们一般可以通过下面的代码获取日志内容:
$post = get_post($post_id);
$post_content = $post->post_cotent;
其实我们可以通过 get_post_field 这个函数更简单更快速的方式获取日志内容:
$post_content = get_post_field('post_content', $post_id);
实际上这个函数还可以用来快速获取日志的其他字段,详细可以参考 get_post_field 函数的 codex 页面。