Получение URL-адреса Featured и его добавление в качестве настраиваемого поля для публикации обновления / публикации

Я пробовал ряд решений, размещенных здесь, касательно преобразования настраиваемых полей в изображения с изображениями – конечно, в обратном порядке; но не работает для меня.

То, что я пытаюсь сделать, это захватить URL-адрес Featured Image после загрузки изображения и установки его в качестве отображаемого изображения; затем автоматически установите URL-адрес полного размера в качестве настраиваемого поля. Это должно работать как на пост-обновление для существующих статей, которые в настоящее время не имеют настраиваемого поля, и для публикации post для новых статей.

Как уже упоминалось, я испробовал множество предложений, основанных на этом, но ни один из них не работает. Вот последний бит кода, который я попытался сделать без успеха, хотя – и разочаровывающая часть заключается в том, что я не могу отлаживать или получать какие-либо ошибки из этого:

add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; $post_thumbnail_id = get_post_thumbnail_id(); $post_thumbnail_url = wp_get_attachment_url($post_thumbnail_id); add_post_meta($post_ID, 'lead_image', $post_thumbnail_url, false); } 

Solutions Collecting From Web of "Получение URL-адреса Featured и его добавление в качестве настраиваемого поля для публикации обновления / публикации"

Функция get_post_thumbnail_id() требует значения, которое должно быть передано при использовании вне цикла wordpress. Вы забыли передать его.

Код, который вы используете, создаст новое настраиваемое поле для каждого обновления, поэтому здесь будет изменен код, который будет выполнять функцию update_post_meta если эта мета-ключ уже присутствует в базе данных.

Следующий код протестирован на WordPress 3.4.1 с установленной темой 20 десяти

 add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; $post_thumbnail_id = get_post_thumbnail_id( $post_ID ); $post_thumbnail_url = wp_get_attachment_url($post_thumbnail_id); //to make sure if we already has set the value $has_image = get_post_meta($post_ID, 'lead_image', true); //will update instead of add if meta_key has value. if ($has_image != '') { add_post_meta($post_ID, 'lead_image', $post_thumbnail_url, true); } else { update_post_meta($post_ID, 'lead_image', $post_thumbnail_url, $has_image); } }