Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Друзья! Подскажите как вывести три последние картинки из поста

306
30 ноября 2011 года
order.daemon
275 / / 11.05.2007
WordPress позволяет прикреплять много картинок, а я хочу вывести не одну а три и сразу в рубрике. Пока я могу вывести только первую картинку, а как бы вывести их три.

Пример:

Код:
function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];
  return $first_img;
}

<?php echo catch_that_image() ?>


Вот с помощью такой конструкции я получаю первую картинку которая прикреплена к материалу, а как можно вывести три.
4
30 ноября 2011 года
mike
3.7K / / 01.10.2002
Код:
function catch_that_image() {
    global $post, $posts;
    $images=Array();

    $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/iU', $post->post_content, $matches);

    if ($output>3) $output=3;
    for ($i=0;$i<$output;$i++) $images[]=$matches[1][$i];

    return $images;
    }

print_r(catch_that_image($a));
306
01 декабря 2011 года
order.daemon
275 / / 11.05.2007
что-то не сработало, выводит на странице - Array( ),
хотя на некоторых оно выводит ссылки, в формате, вместе с Array...

Array
(
[0] => /wp-content/uploads/2011/11/letauchiy-nosorog-1.png
[1] => /wp-content/uploads/2011/11/letauchiy-nosorog-2.png
[2] => /wp-content/uploads/2011/11/letauchiy-nosorog-3.png
)

Еще проблема в том что картинки по умолчанию без номерации, наверно по этому в масиве 0.

Уменя есть любопытная конструкция которая не зависит от номера картинок и тупо выводит список всех.

Код:
function AdminInformationAboutPost()
{   global $post;
    if(!$post) return;
    if(!is_object($post)) return;
    if(!current_user_can('edit_page',$post->ID)) return;
    echo "<div style=\"border:1px #ccccee solid; background:#eeeeff;\"><center>";
    echo "<table border=0 style='font-size:9pt'><tr>";
    $children = get_children(array('post_parent'=>$post->ID,
                                'post_status'=>'inherit', 'post_type'=>'attachment', 'numberposts'=>'99999',
                                'post_mime_type'=>'image', 'order'=> 'ASC', 'orderby'=> 'menu_order ID'));

    if($children && count($children))
    {   $counter=0;
        foreach($children as $child)
        {   if(++$counter>=10) {$counter=0; echo "</tr><tr>";}
            $full = image_downsize($child->ID, "full");
            $thum = image_downsize($child->ID, "thumbnail");
            $url = strlen($thum[0]) ? $thum[0] : $full[0];
            echo "<td align=center><a href=\"{$full[0]}\" target=\"_blank\"><img src=\"{$url}\" width=\"60\" height=\"50\" style=\"border:1px #000000 solid;\" alt=\"\"></a><br>{$full[1]}x{$full[2]}</td>";
        }
    }
    echo "</tr></table>";
    echo "</center></div>\n";
}
4
01 декабря 2011 года
mike
3.7K / / 01.10.2002
Цитата: order.daemon
что-то не сработало, выводит на странице - Array( ),
хотя на некоторых оно выводит ссылки, в формате, вместе с Array...

 
Код:
Array
(
    [0] => /wp-content/uploads/2011/11/letauchiy-nosorog-1.png
    [1] => /wp-content/uploads/2011/11/letauchiy-nosorog-2.png
    [2] => /wp-content/uploads/2011/11/letauchiy-nosorog-3.png
)


Еще проблема в том что картинки по умолчанию без номерации, наверно по этому в масиве 0.



Предыдущая функция возвращала вам адрес картинки. Теперь их три. И как их возвращать если не в массиве.

Вам бы почитать про основы PHP.

Нумерация у картинок не нужна. Просто берутся первые три картинки из HTML страницы.

306
01 декабря 2011 года
order.daemon
275 / / 11.05.2007
почитал, теперь выводится не строка а сразу картинка, вот толкьо одна, немогу с массивами разобратся:

Код:
function the_thumb($size = "medium", $add = "") {
global $wpdb, $post;

$thumb = $wpdb->get_row("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_parent = {$post->ID} AND post_mime_type LIKE 'image%' ORDER BY menu_order");

if(!empty($thumb)) {
$image = image_downsize($thumb->ID, $size);

print "<img src='{$image[0]}' alt='{$thumb->post_title}' {$add} >";
}
}


для записи использую строку ниже, чтобы передавать опции

 
Код:
<?php the_thumb('medium', 'class="alignleft" width="100" height="100"'); ?>
78K
01 декабря 2011 года
tulza
1 / / 30.11.2011
Может так?
Код:
<?php
function the_thumb($size = "medium", $add = "") {
global $wpdb, $post;

$thumb = $wpdb->get_row("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_parent = {$post->ID} AND post_mime_type LIKE 'image%' ORDER BY menu_order");

if(!empty($thumb)) {
$image = image_downsize($thumb->ID, $size);

$i = 0 ;
foreach($image as $img) {
    $i++ ;
    print "<img src='{$img}' alt='{$thumb->post_title}' {$add} >";
    if ($i > 2) break 1 ;
}
}
}
<?php the_thumb('medium', 'class="alignleft" width="100" height="100"'); ?>
?>
306
02 декабря 2011 года
order.daemon
275 / / 11.05.2007
В таком случае выводится только первая картинка, а потом две пустые картинки с названием первой.
Вопрос остается открытым...
79K
03 января 2012 года
picasso_capillar
1 / / 03.01.2012
даже решил зарегится ради этого!)
думаю эта ссылка поможет решить вопрос!)
http://www.rantiev.com/post-attached-images/
306
04 января 2012 года
order.daemon
275 / / 11.05.2007
Это именно то что нужно! Спс picasso_capillar и rantiev

Но как вывести определенное количество, чтобы не выводить все...
277
04 января 2012 года
arrjj
1.7K / / 26.01.2011
Тебе уже предложили несколько решений, неужели так слоджно немного самому додумать?
Код:
<?php
$images = get_children(
array(
'post_parent' => $postID,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image'
)
);
 
            if($images) {
              for ( $i=0;$i< count($images) && $i<3 ; $i++ ) {
                $img = wp_get_attachment_url( $images[$i]->ID );
                echo '<img src="'.$img.'" alt="" />';
              }
            }
?>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог