admin管理员组文章数量:1418666
so I've used this script in from this post to automatically convert an existing custom field into a tag. The problem is that my custom field is a Post Object. SO, it is creating a tag with the post ID. Can you advise on how to tag as the actual post title?
How to convert custom field value to tag
function my_migration_script() {
global $wpdb;
// Quick and dirty way to get post ids. Normally don't use this method.
$post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type = 'post'" );
// Loop through all ids.
foreach ( $post_ids as $post_id ) {
// Grab the location meta value if it exists.
if ( $value = get_post_meta( $post_id, 'location', true ) ) {
// Remove any commas since it's used as a delimiter.
$value = str_replace ( ',', '', $value );
// Create a tag based on the `location` custom field value.
wp_add_post_tags( $post_id, $value );
}
}
// Uncomment if you'd rather delete without verifying first.
// $wpdb->delete( $wpdb->postmeta, array( 'meta_key' => 'location' ) );
}
// Kick off the script.
my_migration_script();
Updated w/ var_dump values:
array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10362" } array(1) { [0]=> string(5) "13239" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13889" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } array(2) { [0]=> string(5) "13234" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "14060" } array(1) { [0]=> string(5) "13889" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } string(5) "13234" array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "14060" } array(1) { [0]=> string(5) "14060" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "10366" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13452" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "14798" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "14680" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13610" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "14680" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "13889"
so I've used this script in from this post to automatically convert an existing custom field into a tag. The problem is that my custom field is a Post Object. SO, it is creating a tag with the post ID. Can you advise on how to tag as the actual post title?
How to convert custom field value to tag
function my_migration_script() {
global $wpdb;
// Quick and dirty way to get post ids. Normally don't use this method.
$post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type = 'post'" );
// Loop through all ids.
foreach ( $post_ids as $post_id ) {
// Grab the location meta value if it exists.
if ( $value = get_post_meta( $post_id, 'location', true ) ) {
// Remove any commas since it's used as a delimiter.
$value = str_replace ( ',', '', $value );
// Create a tag based on the `location` custom field value.
wp_add_post_tags( $post_id, $value );
}
}
// Uncomment if you'd rather delete without verifying first.
// $wpdb->delete( $wpdb->postmeta, array( 'meta_key' => 'location' ) );
}
// Kick off the script.
my_migration_script();
Updated w/ var_dump values:
array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10362" } array(1) { [0]=> string(5) "13239" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "10346" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13889" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } array(2) { [0]=> string(5) "13234" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "10346" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "14060" } array(1) { [0]=> string(5) "13889" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(2) { [0]=> string(5) "13889" [1]=> string(5) "13236" } string(5) "13234" array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "14060" } array(1) { [0]=> string(5) "14060" } array(2) { [0]=> string(5) "13236" [1]=> string(5) "13889" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "10366" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13452" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "14798" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "14680" } array(1) { [0]=> string(5) "13889" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13234" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(2) "87" } array(1) { [0]=> string(5) "13610" } array(1) { [0]=> string(5) "13236" } array(1) { [0]=> string(5) "14680" } array(1) { [0]=> string(5) "10345" } array(1) { [0]=> string(5) "13889"
Share
Improve this question
edited Jul 25, 2019 at 15:13
chris
asked Jul 25, 2019 at 14:32
chrischris
32 bronze badges
1 Answer
Reset to default 0Assuming the $value
actually returns a post's ID. Replace the code
wp_add_post_tags( $post_id, $value );
With
wp_add_post_tags( $post_id, sanitize_title( get_the_title( $value[0] ) ) );
本文标签: functionsHow to convert Post Object Custom Field into Tags
版权声明:本文标题:functions - How to convert Post Object Custom Field into Tags 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745295666a2652061.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论