Если в вашей медиатеке есть изображение, вы можете просто просмотреть их и создать публикацию через wp_insert_post.
function import_post_from_imgs() {
$images = get_posts('post_type=attachment&post_status=inherit&posts_per_page=-1');
// just a minimal security check
if ( ! current_user_can('publish_posts') ) return;
if ( ! empty($images) ) { foreach ( $images as $image) {
// prevent duplicate if for some reason the function is called more than once
if ( get_post_meta($image->ID, '_imported', true) ) continue;
$post = array(
'post_title' => $image->post_title,
'post_content' => '',
'post_content' => 'publish'
);
// insert post
$postid = wp_insert_post( $post );
if ( $postid ) {
// set the image as thumbnalil
set_post_thumbnail($postid, $image->ID);
update_post_meta($image->ID, '_imported', 1);
}
} }
}
function go_import_post_from_imgs() {
if ( isset($_GET['import_images']) ) import_post_from_imgs();
}
add_action('admin_init', 'go_import_post_from_imgs');
В приведенном выше коде функция импорта запускается при инициализации администратора, когда $_GETустановлена переменная «import_images».
Итак, вам нужно войти в свою панель управления, а затем URL вашей страницы будет выглядеть примерно так http://example.com/wp-admin/. Теперь просто вручную добавьте ‘?import_images=1’, чтобы ваш URL стал http://example.com/wp-admin/?import_images=1, и нажмите Enter .
Через несколько секунд вы увидите посты, созданные из изображений.
Имейте в виду, что эта функция создает пост из всех изображений, которые вы обновили. Если вы хотите исключить некоторые изображения, вы можете воспользоваться двумя способами:
- найдите идентификаторы изображений, которые вы хотите исключить, и добавьте эти 2 строки:
$exclude = array(12, 256, 587); // the ids you want to skip if ( in_array($image->ID, $exclude) ) continue;до
if ( get_post_meta($image->ID, '_imported', true) ) continue; - Предыдущий метод хорош, если вы хотите исключить небольшое количество изображений, если вы хотите исключить больше, вы можете зарегистрировать пользовательскую таксономию для вложений и назначить определенный термин изображениям, которые вы хотите пропустить (например, «пропустить»). (Для этих задач вам может помочь чтение здесь ) . После этого, предположив, что ваша таксономия называется «media-tag» и вы добавили термин «пропустить» к изображениям, которые вы хотите пропустить, добавьте эту строку в то же место:
if ( has_term('skip', 'media-tag', $image->ID) ) continue;





