Я хотел бы иметь разные стили для своих постов, основанные на содержании каждого поста
Вот моя тема 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 для пользовательских типов сообщений (и понял, что они делают, но не знаю, как на самом деле это сделать)
Я думаю, что хочу сразу ввести это в цикл, если это не слишком сложно, как я уже говорил ранее, я мало что знаю о других файлах, которые вы можете включить.
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]')
Уже вставлено. Шаблоны будут просто знать , когда отображается галерея, и автоматически отображать изображения.
Это то, что тебе нужно?
Используйте пользовательские форматы сообщений. В значительной степени сделал бы именно то, что вы хотите!
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 более или менее просто настраивает цикл Надеюсь, это поможет!