Я хотел бы иметь разные стили для своих постов, основанные на содержании каждого поста


Вот моя тема wordpress, которую нужно проверить (она еще не полностью закончена): http://benlevywebdesign.com/wordpress/

Я впервые работаю с php/wordpress и создаю темы, так что имейте это в виду. У меня есть index.php, css и файл 960.css и не знаете о других файлах, которые вы можете включить.

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

Я хочу сначала сосредоточиться на стиле фотографии, где фотография будет большой и большой, а не размером с миниатюру или обычное почтовое изображение.

Как только я научусь использовать разные стили, я смогу добавить больше самостоятельно, потому что это просто css!


Вот мой текущий код цикла:

    <!-- ***** Post **** -->
    <div class="grid_2 alpha">
        <div class="date_banner">
            <div class="d"><!-- sidebar 1 --><?php the_time('d'); ?></div>
            <div class="m"><!-- sidebar 1 --><?php the_time('M'); ?></div>
            <div class="y"><!-- sidebar 1 --><?php the_time('Y'); ?></div>
        </div>
        <div class="commentsnumber">
            <?php comments_number('No comment', '1 comment', '% comments'); ?>
        </div>
    </div>

    <div class="grid_10 omega">

      <div class="post">
        <div class="titlepostauthorimage">
            <div class="post-title">
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </div>
            <div class="post-author-image">

            </div>
            <div class="post-author">
                 <?php the_author_posts_link(); ?>
            </div>
            <div class="post-image">
                <?php the_post_thumbnail( $size, $attr ); ?> 
            </div>
        </div>

        <div class="post-body">
            <?php the_content(); ?>
        </div>
        <div class="post-meta">
            <?php the_category(', '); ?>
            <!-- post tags -->
        </div>
    </div>
    <div class="commentsarrow"> <?php wp_list_comments(); ?> </div>

    </div>
        <!-- ***** END post ***** -->
    <?php endwhile; else: ?>
        <!-- In case no posts were found -->
            <div class="post-cf">Hmmm? Can't. Find. Post.
            </div>
    <?php endif; ?>

Вот пример темы блога, которая делает то, что я хочу (3-й пост снизу) http://demo.kreativethemes.com/evolution/


Я прочитал об использовании функции post_class() и о том, что мне нужно будет создать другой php-файл для типа сообщения, или что я мог бы просто закодировать разметку прямо в цикл, если это больше то, что я предпочитаю в этом вопросе CSS для пользовательских типов сообщений (и понял, что они делают, но не знаю, как на самом деле это сделать)

Я думаю, что хочу сразу ввести это в цикл, если это не слишком сложно, как я уже говорил ранее, я мало что знаю о других файлах, которые вы можете включить.

Author: Community, 2012-11-02

2 answers

В зависимости от того, какие "типы" вам нужны, вы можете искать функциональность Формата публикации . Это позволяет вам устанавливать стандартные сообщения, цитаты, галереи и т. Д. (Что-то вроде Tumblr). Чтобы активировать его, просто добавьте это в свою тему (возможно functions.php ):

add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote' ) );

Затем в ваших шаблонах у вас есть несколько вариантов. Вы можете либо использовать условные обозначения, чтобы выйти из себя в single.php, или вы можете создать PHP-файлы для каждого формата публикации. Внутри single.php, вы бы хотели что-то вроде этого:

get_template_part( 'content', get_post_format() );

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

do_shortcode('[gallery]')

Уже вставлено. Шаблоны будут просто знать , когда отображается галерея, и автоматически отображать изображения.

Это то, что тебе нужно?

 1
Author: clark, 2012-11-02 17:41:47

Используйте пользовательские форматы сообщений. В значительной степени сделал бы именно то, что вы хотите!

Http://codex.wordpress.org/Post_Formats

Извините, я забыл добавить, что это было бы лучшей практикой. Вы могли бы сохранить divs с классами сетки в цикле, но затем использовать get_template_part("содержимое", get_post_format()); в пределах этого div.

, который загрузит файл шаблона'content-video.php "если бы формат публикации был видео. Там все как обычно с разметкой и php.

В 'content-video.php "или какой бы это ни был тип записи, вы можете загружать свои CSS-классы, как обычно.

Вот еще некоторые подробности:

В functions.php файл:

Add_theme_support ("постформаты", массив ("видео", "галерея"));

Затем в вашем index.php файл (тот, что с циклом), вы могли бы сделать так:

`в то время как (у_постов()): the_post(); get_template_part ('содержимое', get_post_format());`

Это даст вам правильный контент файл, т. е.; content.php или content-video.php, и т.д.

Затем в content-video.php , например, если вы показываете видео на YouTube:

`do_shortcode ("youtube");`

Имея это в виду, у вас будут следующие файлы:

Functions.php - вам это понадобится рано или поздно, так что не помешает создать его

Content.php - это будет иметь разметку, специфичную для содержания сообщения. Это общий вариант.

Content-video.php - вот куда вы бы поместили код это отличается от всего остального контента. Или, другими словами, специфичный для video.php

В index.php более или менее просто настраивает цикл Надеюсь, это поможет!

 0
Author: dmarges, 2012-11-02 18:24:16