• Возникла необходимость изменить вывод изображений которые выводятся с помощью timthumb.php на вывод плагином Kama Thumbnail.
    О том как он работает я уже писал, но повторюсь:
    Благодаря ему я добился уменьшения запросов в базу в два раза! А теперь поподробнее о нем! Если у Вас на сайте много маленьких и не очень изображений…как у меня на buraevopress и они выводятся с помощью timthumb.php К примеру код может быть таким

    <img src="<?php bloginfo('template_directory'); ?>/includes/timthumb.php?src=<?php get_thumbnail($post->ID, 'full'); ?>&h=60&w=60&zc=1" alt="<?php the_title(); ?>" />

    То тут сразу 2-а запроса в базу…а если вы поставите плагин Kama Thumbnail и измените ссылку на

    <img src="<?php echo kama_thumb_src ('w=60 &h=60 &q=100'); ?>" alt="<?php the_title(); ?>" />

    то запрос будет один и к тому же изображения кешируются а не создаются при каждом обращении!
    У меня на сайте устроено все так же!
    Но профиль пользователя который я создал с помощью плагина Wp-Users выводит у меня изображения используя timthumb.php
    Выглядит это так
    http://s018.radikal.ru/i528/1201/f8/18ef41674729.png
    или посмотрите по этой ССЫЛКЕ
    а вот код вывода

    $html .= "<div id='prof_res_post'>";
            if ($recent_posts) {
    			$html .= "<h3 style='padding:5px 0;' class='autor_res_post'>ВСЕ ЗАПИСИ АВТОРА</h3>\n";
    			$html .= "<ul class='autor_res_post'>\n";
    			$styledir = get_bloginfo('stylesheet_directory');
    			foreach( $recent_posts as $post )
    			{
    				setup_postdata($post);
    				$posttitles = $post->post_title;
    				$thumbnail = '';
    				if ($images = get_children(array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'numberposts' => '1', 'post_mime_type' => 'image', ))) {
    				    foreach($images as $image) {
    					    $thumbnail=wp_get_attachment_image_src($image->ID, 'full');
    				    }
    		        }
    				$html .= '<li>';
    				if ( is_user_logged_in() && current_user_can('edit_post')){
                    $html .= '<a class="redaktor" href="' . get_edit_post_link($post->ID) . '">Редактировать</a>';
                    }
    				$html .= '<a href="' . get_permalink($post->ID) . '"><img align="center" src="'. $styledir . '/includes/timthumb.php?src=';
                    if ($thumbnail != '') {
    	            $html .= $thumbnail[0];
    	            } else {
    	            $html .= $styledir . '/images/image-pending.gif';
                    }
    				$html .= '&h=&w=90&zc=1" alt="' . $posttitles . '"  />' . $posttitles . '</a></li>';
    
    			}
    			$html .= "</ul>\n";
    		}
    		else {$html .= "<h3 style='padding:5px 0;' class='autor_res_post'>У АВТОРА ПОКА НЕТ СТАТЕЙ</h3>\n";}
    		wp_reset_query();
    		$html .= "</div>\n";

    Мне нужно тут вот этот кусок кода

    $html .= '<a href="' . get_permalink($post->ID) . '"><img align="center" src="'. $styledir . '/includes/timthumb.php?src=';
                    if ($thumbnail != '') {
    	            $html .= $thumbnail[0];
    	            } else {
    	            $html .= $styledir . '/images/image-pending.gif';
                    }
    				$html .= '&h=&w=90&zc=1" alt="' . $posttitles . '"  />' . $posttitles . '</a></li>';

    Поменять на вот такой
    <img src="<?php echo kama_thumb_src ('w=60 &h=60 &q=100'); ?>" alt="<?php the_title(); ?>" />

    А построение кода в плагине немного отличается всякими запятыми,точками…т.е у меня не получается…Помогите пожалуйста!

Просмотр 11 ответов — с 16 по 26 (всего 26)
  • Вечерком попробую…Спасибо!

    Грузятся все статьи со всего сайта…что то в коде не так!

    У меня ок. Загружаются только записи автора. Поместил там же, на pastebin, отредактированный код плагина полностью. Проверьте, правильно ли расположен код (в функции display_user() { далее блок if ( $curauth ) {
    Между блоками if (get_option('wpu_description_profile')) { ... }
    и
    if ($recent_comments) {...} поместить код.
    Возможно, в Вашем варианте где-то еще один query, попробуйте поставить wp_reset_query(); перед global $wp_query;

    Да, были баги, в начало этого кода надо добавить wp_reset_query(); и глобальную $paged

    wp_reset_query();
    global $wp_query, $paged;

    Сейчас ок 😉

    Кароче ничего не выходит…после странички автора сразу начинают подгружаться остальные статьи…автора или нет непонятно…вот к примеру http://buraevopress.ru/avtoryi?uid=1 а сам код я сверил тот что на пастебине…и вроде все норм… Вот мой на пастебине выклал весь http://pastebin.com/m6hLLE3M

    Если убрать код который отвечает за вывод статей…то все норм…статей нет но все грузится норм…значит дело в самом коде

    wp_reset_query();
    global $wp_query, $paged;
    $wp_query = new WP_Query();
    $wp_query->query('author='.$curauth->ID.'&showposts=10'.'&paged='.$paged);
    if (have_posts()) :
    $html .= "<h3 style='padding:5px 0;' class='autor_res_post'>ВСЕ ЗАПИСИ АВТОРА</h3>\n";
    $html .= "<ul class='autor_res_post'>\n";
    while ($wp_query->have_posts()) : $wp_query->the_post();
    $html .= "<li>";
    if ( is_user_logged_in() && current_user_can('edit_post'))
    {
    $html .= '<a class="redaktor" href="' . get_edit_post_link($post->ID) . '">Редактировать</a><br/>';
    }
    $html .= '<a href="' . get_permalink($post->ID) . '"><img align="center" src="' . kama_thumb_src('w=90 &q=100') . '" alt="' . $posttitles . '" />' . $posttitles . '</a></li>';
    endwhile;
    $html .= "</ul>\n";
    $html .= '<div class="navigation">';
    $html .=  '<div class="alignleft">' . get_previous_posts_link( 'Prev' ) . '</div>';
    $html .=  '<div class="alignright">' . get_next_posts_link( 'Next' ) . '</div>';
    $html .= '</div>';
    else :
    $html .= "<h3 style='padding:5px 0;' class='autor_res_post'>У АВТОРА ПОКА НЕТ СТАТЕЙ</h3>\n";
    endif;

    В строке 329 после endif; пропал wp_reset_query(); надо добавить.

    UPD — строка 329.

    Толку ноль!

    UPD — строка 329. Да я понял! Но все равно нет толку…

    Должен быть толк, без reset у меня тоже выводит внизу статьи, с reset — все ок.

Просмотр 11 ответов — с 16 по 26 (всего 26)
  • Тема «Замена» закрыта для новых ответов.