Identifying Importer Posts

时间:2013-01-31 作者:Tom J Nowell

如果一个站点有100篇帖子,其中有数量不详的帖子是手动编写的,其余的帖子是使用WordPress导入器创建的,那么在没有访问远程站点或原始导入文件的情况下,我如何以编程方式识别导入的帖子?

E、 g.这篇文章是由进口商工具创建的吗?

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

我可以想象两件事:

检查post_modified 价值导入可能会创建一个您可以使用的确定时间戳。您仍然需要将导入日期保存在某个位置,以便对照它进行检查SysBot Plugin 用户访问安装中没有现有用户的每个帖子。这使我可以使用归档文件,过滤管理帖子列表表等。这是一个非常方便的检查这些内容的解决方案。它还允许被审查的帖子退出“已导入但尚未触及”队列,因为作者可以更改。您还可以使用本机导入程序和\'import_allow_create_users\' 只需设置回调__return_false.\'import_post_meta\'.如果您正在渗透本机导入程序插件,则需要从\'import_start\' 钩系统中的最后一个钩子(您可能想检查是否一切正常)是\'import_end\'

编辑我刚刚遇到了一个我甚至不知道它存在的类(在core中,而不是WP导入器插件中):WP_Importer. 此类有一个名为get_imported_posts().

因此,从理论上讲,您可以执行以下操作:

$importer = new WP_Importer;
$importer_name = \'???\';
$bid = get_current_blog_id();
$imported_posts = $importer->get_imported_posts( $importer_name, $bid );
搜索的元键由两个元键构建:

$meta_key = $importer_name . \'_\' . $bid . \'_permalink\';
因此,似乎有一条独特的跟踪路线可以遵循。

更新#2

可以运行的查询示例如下:

var_dump( $wpdb->get_results( "
    SELECT post_id, meta_value 
    FROM {$wpdb->postmeta} 
    WHERE meta_key 
    LIKE \'%_permalink%\'
" ) );
这将使所有类似的帖子更容易确定“importer\\u name”。

编辑#3get_importers(), 您可以转储以查看注册的进口商(使用register_importer()). 这应有助于识别实际进口商名称。

SO网友:Rarst

虽然我不知道import会做任何明确的标记,但可能的指标有:

  • guid 字段,如果帖子不是从同一域(或其他差异)导入的post_id 字段,建议为import_id 在导入期间,可能会导致可检测到的ID块与本机创建的ID块不连续

结束