我已经尝试了一些搜索,但到目前为止还没有找到比这更好的。我有一个客户,他必须将大量图像上传到图库中,为了节省时间,他在Photoshop中将标题保存为文件名。就个人而言,我更愿意在WP内完成,但这是他的工作流程,不会改变!
有没有办法获取经过预清理的文件名并将其保存为元数据?
我已经看过了wp_handle_upload_prefilter
但从我所看到的情况来看,这并不正确。
我已经尝试了一些搜索,但到目前为止还没有找到比这更好的。我有一个客户,他必须将大量图像上传到图库中,为了节省时间,他在Photoshop中将标题保存为文件名。就个人而言,我更愿意在WP内完成,但这是他的工作流程,不会改变!
有没有办法获取经过预清理的文件名并将其保存为元数据?
我已经看过了wp_handle_upload_prefilter
但从我所看到的情况来看,这并不正确。
不幸地wp_handle_upload_prefilter
挂钩尚未识别附件ID。太早了,运行预清理的文件名(在移动附件并将其存储为帖子之前)
wp_handle_upload_prefilter
但是,应该存储一个包含经过预清理的文件名的寿命很短的瞬态。添加附件后,我们可以使用add_attachment()
钩您可以使用存储的瞬时值更新附件标题、标题或任何其他元数据。
最后,您将删除瞬态。
我确实测试了这个方法,并且似乎在本地主机安装上进行了多附件和单附件上传。
好的,这就是如何使用代码来完成它。
set_transient
add_action( \'wp_handle_upload_prefilter\', \'_remember_presanitized_filename\' );
function _remember_presanitized_filename( $file ) {
$file_parts = pathinfo( $file[\'name\'] );
set_transient( \'_set_attachment_title\', $file_parts[\'filename\'], 30 );
return $file;
}
捕获瞬态选项以更新添加的附件add_action( \'add_attachment\', \'_set_attachment_title\' );
function _set_attachment_title( $attachment_id ) {
$title = get_transient( \'_set_attachment_title\' );
if ( $title ) {
// to update attachment title and caption
wp_update_post( array( \'ID\' => $attachment_id, \'post_title\' => $title, \'post_excerpt\' => $title ) );
// to update other metadata
update_post_meta( $attachment_id, \'_wp_attachment_image_alt\', $title );
// delete the transient for this upload
delete_transient( \'_set_attachment_title\' );
}
}
我正在尝试将我的网站从共享主机迁移到数字海洋。我上传了wp的内容,我的网站已经有3年多的历史了。现在,当我在仪表板上查看媒体时。文件未显示。理想情况下,所有月份都应该可见,但正如您在图像中所看到的,只显示选定的月份数。如何让Wordpress显示所有月份和图像?