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() ?>
Друзья! Подскажите как вывести три последние картинки из поста
Пример:
Код:
Вот с помощью такой конструкции я получаю первую картинку которая прикреплена к материалу, а как можно вывести три.
Код:
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));
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));
хотя на некоторых оно выводит ссылки, в формате, вместе с 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";
}
{ 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";
}
Цитата: order.daemon
что-то не сработало, выводит на странице - Array( ),
хотя на некоторых оно выводит ссылки, в формате, вместе с Array...
Еще проблема в том что картинки по умолчанию без номерации, наверно по этому в масиве 0.
хотя на некоторых оно выводит ссылки, в формате, вместе с 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] => /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 страницы.
Код:
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} >";
}
}
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"'); ?>
Код:
<?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"'); ?>
?>
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"'); ?>
?>
Вопрос остается открытым...
даже решил зарегится ради этого!)
Но как вывести определенное количество, чтобы не выводить все...
Код:
<?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="" />';
}
}
?>
$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="" />';
}
}
?>