Crie uma postagem de cada imagem na minha galeria de mídia

Estou procurando uma boa maneira de criar posts de cada imagem na minha galeria de imagens de mídia. Carreguei cerca de 200 fotos e quero criar uma postagem para cada imagem, onde eu configurei a imagem como uma miniatura.

Estou usando o tema Photogram e só quero mostrar algumas fotos (título e outras coisas não necessárias).

Muito obrigado!!

Solutions Collecting From Web of "Crie uma postagem de cada imagem na minha galeria de mídia"

Se você tiver a imagem em sua biblioteca de mídia, você pode simplesmente fazer um loop através deles e criar postagem via 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'); 

No código acima, a function de importação é ativada no init de administrador, quando a variável $_GET ‘import_images’ é configurada.

Então, você precisa fazer login no seu painel e, em seguida, o URL da sua página é algo como http://example.com/wp-admin/ . Agora, use manualmente ‘? Import_images = 1’ para que sua URL se torne http://example.com/wp-admin/?import_images=1 e pressione Enter .

Depois de alguns segundos, você deve ver as postagens criadas a partir de imagens.

Esteja ciente de que esta function crie uma postagem de todas as imagens que você atualizou. Se você deseja excluir algumas imagens, você pode seguir duas maneiras:

  1. procure as ID das imagens que deseja excluir e adicione estas 2 linhas:

     $exclude = array(12, 256, 587); // the ids you want to skip if ( in_array($image->ID, $exclude) ) continue; 

    antes if ( get_post_meta($image->ID, '_imported', true) ) continue;

  2. O método anterior é bom se você deseja excluir um pequeno número de imagens, se você quiser excluir mais, você pode registrar uma taxonomia personalizada para os anexos e atribuir um termo específico às imagens que deseja ignorar (por exemplo, “ignorar”). (Para essas tarefas, uma leitura aqui pode ajudá-lo) . Depois disso, assumir que a taxonomia é chamada de “media-tag” e você adicionou o termo “ignorar” às imagens que deseja ignorar, adicione esta linha no mesmo local:

      if ( has_term('skip', 'media-tag', $image->ID) ) continue;