【问题标题】:Wordpress SQL insert string into custom fieldsWordpress SQL 将字符串插入自定义字段
【发布时间】:2014-12-17 04:09:28
【问题描述】:

我在一个名为 clothing 的自定义帖子类型中有数千个帖子,其中有一个名为 wpcf-translation 的自定义字段

我需要在每个帖子的 wpcf-translation 自定义字段中插入一个字符串。

但我在互联网上找不到任何东西。所以我的问题是,是否有一个 SQL 查询可以用来在自定义帖子类型 clothing 中的每个帖子的自定义字段 wpcf-translation 中插入一个字符串?

谢谢

【问题讨论】:

  • wpcf 翻译是“序列化”字段吗?你能举一个该字段中的一行的例子吗?
  • 我不认为该字段是序列化的。我真的是 SQL 查询的新手,您在示例行中寻找什么样的信息?
  • 我很确定您正在使用“类型”插件来创建您的自定义字段?粗略一看,我发现 Types 中的许多字段确实是序列化数据,您可能会发现 Wordpress Codex 上的这篇文章很有帮助 - wordpress.org/support/topic/…
  • 是的,我使用的是 Types 插件,所以如果字段是序列化数据,是否可以使用查询将字符串插入这些字段?
  • 坦率地说,如果您不知道什么是序列化数据,我建议您使用 Wordpress 的序列化数据搜索和替换。基本上你将不得不反序列化数据,然后重新序列化它,然后插入。对这些字段的任何直接数据库操作都可能被解释为“损坏”并且不起作用。序列化数据意味着每个字符串或数据片段都有一个设定的长度,如果字段的实际内容超过该长度,则认为它已损坏。可以找到引用的脚本-interconnectit.com/products/…

标签: php mysql wordpress


【解决方案1】:

根据您的评论:我认为该字段没有被序列化。,以下应该可以完成工作

$args = array(
            'post_type' => 'clothing',
            'posts_per_page' => -1,
        );

$query = new WP_Query( $args );

while( $query->have_posts() ) : if( $query->have_posts() ) : $query->the_post();
    update_post_meta($post->ID, 'wpcf-translation' , 'your string here');
else :
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
endif; 

endwhile;

wp_reset_postdata();

确保您有备份,以防万一出现问题。动态创建的代码,因此可能需要一些微调。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多