// если у записи есть миниатюра
if( $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ) )
if( $src = wp_get_attachment_url( $thumbnail_id ) )
return $src;
// миниатюры нет, ищем в контенте
preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>/i', $post->post_content, $match );
if( ! $match )
return $default_src;
return $match[1];
}
function get_attachment_id_by_url( $url ) {
global $wpdb;
// таблица постов, там же перечисленны и медиафайлы
$table = $wpdb->prefix . 'posts';
$attachment_id = $wpdb->get_var(
$wpdb->prepare( "SELECT ID FROM $table WHERE guid RLIKE %s", $url )
);
// Returns id
return $attachment_id;
}
?>
Regenerate Thumbnails
эти увеличивают фото
Viva Thumb-Zoom
Thumbnails Viva Thumb-Zoom
врубайте все а там разберетесь
<?php
ini_set("display_errors",1);
error_reporting(E_ALL);
set_time_limit(0);
$start = microtime(true);
require_once( 'wp-load.php' );
/*global $wpdb;
$wpdb->query( "
DELETE FROM $wpdb->postmeta
WHERE meta_key = '_thumbnail_id'
" );*/
?>
<?php
// запрос
$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1)); ?>
<?php if ( $wpb_all_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
<?php
if ( !has_post_thumbnail()){
$img = get_post_first_image_src(get_the_ID());
$img_id = get_attachment_id_by_url($img);
set_post_thumbnail(get_the_ID(), $img_id);
}else{
echo "<p>есть миниатюра</p>";
}
?>
<?php endwhile; ?>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Извините, нет записей, соответствуюших Вашему запросу.' ); ?></p>
<?php endif; ?>}
<?php
$time = microtime(true) - $start;
printf('Скрипт выполнялся %.4F сек.', $time);
function get_post_first_image_src( $post = 0, $default_src = '' ){
if( ! $post || ! is_object($post) )
$post = get_post($post);
// если у записи есть миниатюра
if( $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ) )
if( $src = wp_get_attachment_url( $thumbnail_id ) )
return $src;
// миниатюры нет, ищем в контенте
preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>/i', $post->post_content, $match );
if( ! $match )
return $default_src;
return $match[1];
}
function get_attachment_id_by_url( $url ) {
global $wpdb;
// таблица постов, там же перечисленны и медиафайлы
$table = $wpdb->prefix . 'posts';
$attachment_id = $wpdb->get_var(
$wpdb->prepare( "SELECT ID FROM $table WHERE guid RLIKE %s", $url )
);
// Returns id
return $attachment_id;
}
?>