Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
1

Использования миниатюры в качестве бэкграунда к записи

27.03.2013, 17:13. Показов 4169. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста ка реализовать..
сейчас копал код выяснил что:
1)
CSS
1
.grid .hentry {width: 300px; height:80px; padding: 20px 0; margin: 20px 20px 0px 0px; float: left; background:#C03}
Это строка отвечает за размер блока для которого необходимо ставить бэкграунд
2)
CSS
1
.grid .hentry .post-thumb img {display: block; width: 300px; height: 180px; margin-bottom: 8px;}
эта строка отвечает за отображения изображения в блоке.
3)
PHP
1
2
3
4
5
6
7
 <?php
            $paged = ( !empty($paged) ) ? $paged : $page;
            query_posts(array(
                'posts_per_page' =>  get_option('posts_per_page'),
                'paged' => $paged
            ));
        ?>
Похоже на отображение записи
Никогда с таким не сталкивался очень хочу попробовать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 17:13
Ответы с готовыми решениями:

Сделать, чтобы анонс записи начинался с абзаца после миниатюры (картинки) записи
Вот пробный сайт http://djeysonborn2016.ru/ Изменения необходимо сделать здесь: ...

Не могу убрать вывод миниатюры записи в самой записи
Содержание (single.php), нужной строчки для переделки я не нашел, помогите кто разбирается и...

Wordpress не позволяет ни записи вставлять, ни миниатюры
Джентльмены! (Не знаю, отн.вопрос к разделу РНР?) На каком-то этапе &quot;натягивания&quot; блога по...

WordPress - Первая картинка из записи вместо миниатюры
Здравствуйте. Пытаюсь в качестве миниатюры назначить первую картинку из записи. В конец файла...

16
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 17:46 2
за вывод миниатюры отвечает функция has_post_thumbnail().
ищите её в коде а дальше уже нужно мудрить.
например проверим есть ли миниатюра для поста и выведем новый div class с вашим бекграундом:
PHP
1
2
3
4
5
6
 if ( has_post_thumbnail()) {  
  $background_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); // получаем ссылку картинки
echo '<div class="post" style="background-image:'. $background_url[0]. ' "> '; //вставляем ссылку в стиль и заливаем бекграунд этой картинкой
the_post_thumbnail('thumbnail');  //выводим содержимое поста
echo ' текст текст текст';
echo '</div>
что то типа этого, но нужно редактировать под себя
2
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 17:57  [ТС] 3
только вот вопрос после
PHP
1
echo '</div>
я закрываю ковычку и ставлю точку с запятой.. получаю ошибку на последней странице шаблона...(все делаю в <?php ...?>
!!! Вопрос отпал
PHP
1
echo '</div>';}
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 18:04 4
нужно видеть весть код. я написал только пример, как бы он логически выглядел. всё это должно быть в середине the_content. например
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php  
   
 
the_content(__('Читать всю запись &raquo;')); 
if ( has_post_thumbnail() ) {  
  $background_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); // получаем ссылку картинки
echo '<div class="post" style="background-image:'. $background_url[0]. ' "> '; //вставляем ссылку в стиль и заливаем бекграунд этой картинкой
the_post_thumbnail('thumbnail');  //выводим содержимое поста
echo ' текст текст текст';
echo '</div>';
}
?>
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 18:13  [ТС] 5
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
/*
Template Name: Афиша
*/
 
get_header(); ?>
 
<div id="content">
    <div class="afisha">
 
        <div class="title"><?php _e('События в Воркуте', 'unspoken'); ?><a href="" class="<?php if ($_COOKIE['mode'] == 'flip')?>"></a></div>
 
        <?php  
   
 
the_content(__('Читать всю запись &raquo;')); 
if ( has_post_thumbnail() ) {  
  $background_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); // получаем ссылку картинки
echo '<div class="post" style="background-image:'. $background_url[0]. ' "> '; //вставляем ссылку в стиль и заливаем бекграунд этой картинкой
the_post_thumbnail('thumbnail');  //выводим содержимое поста
echo ' текст текст текст';
echo '</div>';
}
?> 
        
 
        <?php get_template_part('pagination'); ?>
 
        <?php  wp_reset_query(); ?>
 
    </div> <!-- .archive -->
</div> <!-- #content -->
 
<?php get_sidebar(); ?>
 
<?php get_footer(); ?>
по сути вот весь код...собственно..
а во вложении вырезка с экрана когда нет ни одной записи...
Миниатюры
Использования миниатюры в качестве бэкграунда к записи  
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 18:33 6
ничего не понимаю, а где цикл ?
PHP
1
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
откуда посты берутся?

Добавлено через 14 минут
короче, как бы там нибыло нам нужно получить ссылку на картинку.для этого используем
PHP
1
$background_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
ссылка сохраняется в переменную $background_url . далее просто вставляес переменную в стиль нужного div.
HTML5
1
<div class="afisha" style="background-image:url('<?php echo $background_url[0]; ?>');">
по идее должно работать, поправьте кто-нибудь
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 18:36  [ТС] 7
Вот смотри
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/*
Template Name: Афиша
*/
 
get_header(); ?>
 
<div id="content">
    <div class="archive">
 
        <div class="title"><?php _e('Последние записи', 'unspoken'); ?></div>
 
        <?php
            $paged = ( !empty($paged) ) ? $paged : $page;
            query_posts(array(
                'posts_per_page' =>  get_option('posts_per_page'),
                'paged' => $paged
            ));
        ?>   
             
        <?php get_template_part('loop'); ?>
        
        <?php get_template_part('pagination'); ?>
 
        <?php  wp_reset_query(); ?>
 
    </div> <!-- .archive -->
</div> <!-- #content -->
 
<?php get_sidebar(); ?>
 
<?php get_footer(); ?>
это оригинальный шаблон страницы из шаблона unspoken. во вложении часть страницы
Как я понял посты мы получаем в этой части
PHP
1
2
3
4
5
6
7
<?php
            $paged = ( !empty($paged) ) ? $paged : $page;
            query_posts(array(
                'posts_per_page' =>  get_option('posts_per_page'),
                'paged' => $paged
            ));
        ?>
Миниатюры
Использования миниатюры в качестве бэкграунда к записи  
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 18:54  [ТС] 8
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php if ( have_posts() ) : ?>
 
    <div class="loop">
        <div id="loop" class="<?php if ($_COOKIE['mode'] == 'grid' ) echo 'grid';?> clear">
        <?php
            $postedon_data = array(
                'date' => get_option('unspoken_postedon_date'),
                'category' => get_option('unspoken_postedon_cat'),
                'comment' => get_option('unspoken_postedon_comm'),
                'author' => get_option('unspoken_postedon_author')
            );
            $i = 0;
            while ( have_posts() ) : the_post();
                $i++;
        ?>
        
                <div style="background-image:url('<?php echo $background_url[0]; ?>');" id="post-<?php the_ID(); ?>" <?php post_class('clear'); ?> >
                    <a href="<?php the_permalink(); ?>" class="post-thumb"><?php if ( has_post_thumbnail() ) the_post_thumbnail('general'); ?></a>
                    <div class="post-meta"><?php if (function_exists('unspoken_posted_on')) unspoken_posted_on($postedon_data); ?></div>
                    <h2><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
                    <p><?php the_excerpt(); ?></p>
                </div>
        <?php
            if ( $i % 2 == 0 ) echo '<div class="clear"></div>';
            endwhile; // end of the loop.
        ?>
            <div class="grid-line"></div>
        </div><!-- #loop -->
    </div><!-- .loop -->
 
<?php else : ?>
 
    <div class="loop">
        <div id="post-0" class="post hentry error404 not-found clear">
            <h2><?php _e( 'Не найдено', 'unspoken' ); ?></h2>
            <p><?php _e( 'Извинените, но ничего не найдено для запрашиваемой критерии. Возможно, поиск поможет найти связанный записи.', 'unspoken' ); ?></p>
        </div><!-- #post-0 -->
    </div>
 
<?php endif; ?>
А вот файл loop
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 19:13  [ТС] 9
Смотри я добился изменения фона...только не на той записи в которой миниатюра, а в соседней...берет изображение оригинального размера
Миниатюры
Использования миниатюры в качестве бэкграунда к записи  
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 19:15 10
у меня получилось тоже(извиняюсь за такую картинку прост первый пост был)
покажи код который работает

 Комментарий модератора 
Картинка удалена. Придется искать другой пост.
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 19:28  [ТС] 11
Извини я запутался, теперь понял структуру:
Шаблон посылает запрос в loop и там необходимо проводить изменения (
PHP
1
 <?php get_template_part('loop'); ?>
)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php if ( have_posts() ) : ?>
 
    <div class="loop">
        <div id="loop" class="<?php if ($_COOKIE['mode'] == 'grid' ) echo 'grid';?> clear">
        <?php
            $postedon_data = array(
                'date' => get_option('unspoken_postedon_date'),
                'category' => get_option('unspoken_postedon_cat')
            );
            $i = 0;
            while ( have_posts() ) : the_post();
                $i++;
        ?>
        
                [B][COLOR="Red"]<div style="background-image:url('<?php echo $background_url[0]; ?>');" id="posta-<?php the_ID(); ?>" <?php post_class('clear'); ?> >[/COLOR][/B]
                    <a href="<?php the_permalink(); ?>" class="post-thumb"><?php if ( has_post_thumbnail() ) the_post_thumbnail('general'); ?></a>
                    <div class="post-meta"><?php if (function_exists('unspoken_posted_on')) unspoken_posted_on($postedon_data); ?></div>
                    <h2><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
                    [B][COLOR="red"]<p><?php $background_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); the_excerpt(); ?></p>[/COLOR][/B]
                </div>
        <?php
            if ( $i % 2 == 0 ) echo '<div class="clear"></div>';
            endwhile; // end of the loop.
        ?>
            <div class="grid-line"></div>
        </div><!-- #loop -->
    </div><!-- .loop -->
 
<?php else : ?>
 
    <div class="loop">
        <div id="post-0" class="post hentry error404 not-found clear">
            <h2><?php _e( 'Не найдено', 'unspoken' ); ?></h2>
            <p><?php _e( 'Извинените, но ничего не найдено для запрашиваемой критерии. Возможно, поиск поможет найти связанный записи.', 'unspoken' ); ?></p>
        </div><!-- #post-0 -->
    </div>
 
<?php endif; ?>
Где [B][COLOR="Red"] это те места куда я вставил твои строчки кода

Добавлено через 3 минуты
и кинь пожалуйста линк на свой сайт
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 19:35 12
у меня заработал такой код
PHP
1
2
3
4
5
6
7
8
<?php if (have_posts()) : while (have_posts()) : the_post(); 
 $id = get_post_thumbnail_id( );
 $background_url = wp_get_attachment_image_src( $id );?>
 
                        
 
            <div class="blogItem" style="background-image:url('<?php echo $background_url[0]; ?>')">
.............. и тд
у тебя в коде если удалить
Код
'large'
то будет выводится обычная миниатюра а не большая
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 20:00  [ТС] 13
а у тебя точно так написано? у меня выдает ошибку на
PHP
1
2
3
4
5
6
7
8
9
10
<?php else : ?>//здесь
 
    <div class="loop">
        <div id="post-0" class="post hentry error404 not-found clear">
            <h2><?php _e( 'Не найдено', 'unspoken' ); ?></h2>
            <p><?php _e( 'Извинените, но ничего не найдено для запрашиваемой критерии. Возможно, поиск поможет найти связанный записи.', 'unspoken' ); ?></p>
        </div><!-- #post-0 -->
    </div>
 
<?php endif; ?>//здесь
Добавлено через 7 минут
и еще, а разве не нужно убирать отоюражение миниатюры?
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 20:28 14
полный код где я тестировал
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
get_header();
?>
 
<!-- begin col left -->
    <div id="colLeft" class="clearfix">     
        <?php 
        if (have_posts()) : 
        while (have_posts()) : the_post();
        $id = get_post_thumbnail_id( );
 $background_url = wp_get_attachment_image_src( $id );
    ?>
              
            <!-- blog item -->
        <div class="blogItem" style="background-image:url('<?php echo $background_url[0]; ?>')">
                <div class="itemTitle clearfix"><div class="wrapercont">
                 <div class="authorcol"><?php echo get_avatar( get_the_author_meta( 'id' ), apply_filters( '', 60 ) ); ?> <a href="http://nebayan.net/author/<?php the_author(); ?>"><?php the_author(); ?> </a></div>
                    <div class="soccol"><?php wpfp_link() ?></div> 
                </div></div><div class="tegi"><?php the_tags('Теги: ', ', ', ''); ?></div>
                <div class="cont">
                <?php  
   
 
   
   
the_content(__('Читать всю запись &raquo;')); 
if ( has_post_thumbnail() ) {
 
 
 
  the_post_thumbnail('');  
 
 
   }
?> 
                </div><div class="metadata"><div class="datepost">
                <?php the_time('G:i@j F Y') ?> </div> <?php if(function_exists('the_ratings')) { the_ratings(); } ?></div>          </div>
            <!-- end blog item -->
        
 
        <div class="commentshab">
        <?php comments_template(); ?></div>
        <h3>Похожие записи:</h3>
        <center><?php get_related_posts_thumbnails(); ?></center>
        <?php endwhile; else: ?>
 
        <p>К сожалению, такой страницы не существует.</p>
 
    <?php endif; ?>
            
            </div>
            <!-- end col left -->
    
<!-- begin col right -->
        <div class="right">
            <?php get_sidebar(); ?> 
        </div>
        <!-- end col right -->
 
 
 
<?php get_footer(); ?>
0
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 20:31  [ТС] 15
у меня почти получилось!!))
осталось избавиться от репита и установить размер блока равным размеру изображения
а то сейчас как то так)
Спасибо тебе!
Миниатюры
Использования миниатюры в качестве бэкграунда к записи  
0
47 / 32 / 5
Регистрация: 07.02.2013
Сообщений: 374
27.03.2013, 20:35 16
ширина это $background_url[1]
высота - $background_url[2]
вставляй их в style div аналогично с бекграундом
1
1 / 1 / 2
Регистрация: 27.03.2013
Сообщений: 48
27.03.2013, 21:11  [ТС] 17
ЯХу!!!
все сделал!
Спасибо RapCore
Вот код loop.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php if (have_posts()) :?>
    <div class="loop">
        <div id="loop" class="<?php if ($_COOKIE['mode'] = 'grida' ) echo 'grida'; else echo 'list'; ?> clear">
        <?php 
            $postedon_data = array(
                'date' => get_option('unspoken_postedon_date')
            );
            
            $i = 0;
            while ( have_posts() ) : the_post();
                $i++;
        ?>
                <div id="post-<?php the_ID(); ?>" <?php post_class('clear'); $id = get_post_thumbnail_id( );
 $background_url = wp_get_attachment_image_src( $id, $size );   ?>style="background-image:url('<?php echo $background_url[0]; ?>')"width="<?php echo $image_attributes[1] ?>" height="<?php echo $image_attributes[2] ?>" >
                    <a href="<?php the_permalink(); ?>" class="post-thumb"></a>
                    <div class="post-meta"><?php if (function_exists('unspoken_posted_on')) unspoken_posted_on($postedon_data); ?></div>
                    <h2><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?><?php ?></a></h2>
                    <p><?php the_excerpt(); ?></p>
                </div>
        <?php
            if ( $i % 2 == 0 ) echo '<div class="clear"></div>';
            endwhile; // end of the loop.
        ?>
           
        </div><!-- #loop -->
    </div><!-- .loop -->
 
<?php else : ?>
 
    <div class="loop">
        <div id="post-0" class="post hentry error404 not-found clear">
            <h2><?php _e( 'Не найдено', 'unspoken' ); ?></h2>
            <p><?php _e( 'Извинените, но ничего не найдено для запрашиваемой критерии. Возможно, поиск поможет найти связанный записи.', 'unspoken' ); ?></p>
        </div><!-- #post-0 -->
    </div>
 
<?php endif; ?>
и скрин
Осталось привести в божеский вид... и основная плюшка уже готова
Миниатюры
Использования миниатюры в качестве бэкграунда к записи  
0
27.03.2013, 21:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2013, 21:11
Помогаю со студенческими работами здесь

Изменение размера миниатюры и удаление дубликата в отдельной записи
Всем привет,такой вопрос интересует,как изменить размер в миниатюры в вновь добавляемую...

Как Удалить блок миниатюры записи со страницы добавления
Доброго времени суток. Как удалить блок &quot;Миниатюра записи&quot; со страницы добавления записей??

Тема twenty ten. Смена размеров изображения заголовка для загрузки миниатюры записи
Добрый день. Общеизвестный факт, что в теме twenty ten при добавлении миниатюры в запись, оная...

Использования текста из Edit в качестве переменных
Проблема заключается в том что когда в поле Edit вводишь числа и их разделителем был какой нибудь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru