WordPres有一个从图像中提取IPTC信息的功能,该功能是wp_read_image_metadata
. 该功能仅在管理端可用,according with the codex, 它不提取IPTC关键字。但你可以使用iptcparse
from PHP 您可以自己提取IPTC关键字并将其设置为post标签。
在您的问题中,您说您已经自动完成了将图像附加为帖子特色图像的过程,因此您可以在该过程中轻松获取图像ID和帖子ID。将图像附加到帖子后,将帖子ID存储在$post_ID
和中的图像ID$image_ID
然后你可以这样做:
$image = getimagesize( get_attached_file( $image_ID ), $info );
if( isset( $info[\'APP13\'] ) ) {
$iptc = iptcparse( $info[\'APP13\'] );
// 2#025 is the key in the iptc array for keywords
if( isset( $iptc[\'2#025\'] ) && is_array( $iptc[\'2#025\'] ) ) {
// Last param is true to append these tags to existing tags,
// set it to false to replace existing tags
// See https://codex.wordpress.org/Function_Reference/wp_set_post_tags
wp_set_post_tags( $post_ID, $iptc[\'2#025\'], true );
}
}
如果使用
set_post_thumbnail
函数(使用edit post屏幕设置特色图像也使用该函数),您可以将上述代码挂接到
updated_post_meta
行动(
set_post_thumbnail
使用元数据设置特色图像):
add_action( \'updated_post_meta\', function( $meta_id, $object_id, $meta_key, $_meta_value ) {
// Check that meta
if( $meta_key == \'_thumbnail_id\' ) {
$image = getimagesize( get_attached_file( $_meta_value ), $info );
if( isset( $info[\'APP13\'] ) ) {
$iptc = iptcparse( $info[\'APP13\'] );
if( isset( $iptc[\'2#025\'] ) && is_array( $iptc[\'2#025\'] ) ) {
wp_set_post_tags( $object_id, $iptc[\'2#025\'], true );
}
}
}
}, 10, 4 );
Note: 代码未测试。就写在这里。您可能还需要处理删除或更改特征图像的时间。
Note2: 我读了你的问题,注意到你(引用你的话)“对于wp或编码之类的东西是新手”。不确定您是否理解上面的代码,我认为第二段代码比第一段代码对您更有帮助。