将许多帖子从具有特定的meta_key转换为使用post_格式

时间:2013-03-30 作者:pixeline

我有350篇帖子使用了meta\\u键(“custom\\u post\\u template”,确切地说)中存储的插件提供的选项。

我想将这些帖子转换为特定的post\\u格式(“gallery”)。

我可以一个接一个地做,但这需要很长时间(有4000多篇帖子),所以我正在研究一个可以做到这一点的智能SQL查询。

现在,我已经找到了如何检索使用旧系统的350篇帖子:

SELECT * 
FROM  `wp_postmeta` 
WHERE  `meta_key` LIKE  \'custom_post_template\'
但我不明白Wordpress在哪里跟踪post\\U格式到post的关联。SQL查询是什么?

1 个回复
SO网友:pixeline

读了很多书后,我意识到使用Wordpress API会更容易完成,所以我编写了这个小脚本。只需将其添加到主题的功能中即可。php然后运行一次。完成后,将其移除。

function convertGalleries($test){
    $galleries = get_posts(array( \'meta_key\' => \'custom_post_template\', \'post_status\' => array( \'any\' ),\'posts_per_page\'=>-1 ));
    if($test){
        return count($galleries);
    }
    $result = array();
    foreach($galleries as $g){
        $result[$g->ID]= set_post_format($g->ID, \'gallery\' );
    }
    return $result;
}

$converted = convertGalleries(false);
echo \'result: \'.count($converted). \' posts converted: <pre>\';
print_r($converted);
exit;

结束

相关推荐

使用SQLite从PDO迁移,以使用MySQL清理新安装

我一直在为wordpress和SQLite数据库使用PDO插件。它不能像预期的那样工作,所以我想使用MySQL数据库,但没有Wordpress的PDO,因为我不能再信任这个插件了,它已经两年多没有更新了。这就是我所做的:将SQLite数据库导出到sql文件对语法进行了必要的更改http://www.maxkpage.com/blog/free-sqlite-to-mysql-converter-super-easy/安装了带有新MySQL数据库的新Wordpress,复制了旧的Wp内容文件夹,并通过复制所