我对PHP相当陌生,因此我通过查找代码片段并将它们拼凑起来来编写代码。
我有一些代码可以通过URL进行屏幕截图,然后将该URL上传到WordPress媒体库。然后,将WordPress媒体文件中的图像URL放在自定义字段中。
以下代码有效,除了该代码将图像保存两次。
function wpscreen($post_id) {
$test = "https://www.google.com/";
$testurl = 'https://s.wordpress.com/mshots/v1/' . $test . '?w=' . '211' . '&h=' . '172' . '.jpg';
$desc = get_the_title($post_id);
$new_image_url = media_sideload_image($testurl, $post_ID, $desc, $src = 'src' );
}
add_action( 'save_post', 'wpscreen' );
我认为是因为我第二次调用了变量$new_image_url
,但是我不确定如何在自定义字段中获取URL。
非常感谢您的帮助。
编辑,我使代码更简单,但是图像仍然上传了两次。
编辑2(解决方案)
显然Save_post
运行两次(有时/总是?)。通过在我的代码周围添加以下代码段,它可以正常工作。
if( ! ( wp_is_post_revision( $post_id) || wp_is_post_autosave( $post_id ) ) ) {
}