如何从标签中的附加字段传输数据?

时间:2016-11-30 作者:user108003

我有一个额外的字段“年”,我想把它的数据传输到所有现有帖子的标签中,这样就可以使用按年排序。如何最好地做到这一点。也许有现成的插件?

1 个回复
SO网友:Dan.

你不需要插件,这将是你需要做的一次性事情。

您需要编写一个脚本来执行此操作,运行它,然后您就可以删除该脚本了。

在主题的根目录中创建一个新的PHP文件并调用它page-transfer-tag-info.php

将此代码放入新文件:

<?php

// first, get all the posts you want to do this for
$posts = get_posts(array(\'post_type\'=>\'the_required_post_type\', \'posts_per_page\'=>-1);

foreach($posts as $post){

    $terms = get_the_terms($post->ID, \'the_taxonomy_in_question\'); // I\'m guessing this would be \'tag\' in your case

    foreach($terms as $term){

        update_post_meta($post->ID, \'year\', $term->name); // assuming the meta_key of your custom field is \'year\'

    }

}
要运行脚本,请创建一个名为“传输标记信息”的页面(在管理中),然后在浏览器中访问该页面。

现在您可以删除页面和文件。

现在,所有这些帖子的“年份”都将设置为标签名称的值。

因此,标签为“2016”的帖子现在将其自定义字段(post meta)“year”设置为“2016”。

编辑(免责声明)(&;D):

在运行此脚本之前备份数据库,以防出错!

相关推荐

get_the_tags doesn't works?

我正在创建一个插件,用户将在其中提交他们的电子邮件地址和喜爱的标签。发布新帖子时,如果帖子具有与用户最喜爱的标签类似的标签,则会向用户发送电子邮件。为此,我需要将新的贴子标签与用户最喜欢的标签进行比较。根据其定义get_the_tags($postId) 应返回post_tags 但是没有。我不知道该怎么办!add_action(\'publish_post\', array( $myClass ,\'wp_send_emailToUser\' ), 10, 2); class customFun