Вопрос по структуре сайта

Как в ВП можно сделать структуру аналагичную этой : razde.ru?
Те как на главной публиковать первые 5-10 постов полностью(частично), а остальные в виде слобика(возможно двух) ссылок?

А какие проблемы?
Сделайте один цикл, в котором выводите заголовки <?php the_title(); ?> и посты целиком <?php the_content(); ?>, а потом второй, в котором выводите только заголовки <?php the_title(); ?>. Ну или второй и третий, если надо в два столбика.

Посмотрите тему mimbo (если мне память не изменяет), то там index.php с двумя столбиками.

Ну или скачайте тот Joomla’вский шаблон и посмотрите как там в нем все устроено: http://portal.hrpr.com/files/downloads/joomla_templates/rhuk_solarflare_ii.zip

Почти так, но немножечко не так. Таким способом вы задублируете контент или придется выводить по категориям ( как в Мимбо – кстати) с помощью параметра query_posts. Если разделять по категориям не хотите, прочитайте тут – _http://www.shoptec.ru/?p=1666

Таким способом вы задублируете контент

Точно! Совсем забыл, что в прошлом году как раз по заказу переверстывал этот шаблон и… задублировал 🙂 Потом как-то выкрутился, а еще потом заказчица захотела большие картинки около каждого поста и от двух-колоночного дизайна отказалась – не влезало 🙂

PS: хорошо запомнил тему, т.к. заказчица уморила меня с цветовой гаммой и почти не помню верстку на фоне этого 🙂

Потом как-то выкрутился

Две (и более) колонки средствами CSS (два цикла не нужны):

PHP (без шапки и подвала – только, чтоб показать идею)
<div id="content">
<?php if (have_posts()) : ?>
<ul class="list clearfloat">
<?php while (have_posts()) : the_post(); ?>
<li>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
</div>

Ну или html-файл (основная часть):

HTML
<div id="content">
<ul class="list clearfloat">
<li> Заголовок [+анонс] </li>
<li> Заголовок [+анонс] </li>
<li> Заголовок [+анонс] </li>

<li> Заголовок [+анонс] </li>
</ul>
</div>

А теперь css (тоже сокращен до минимума)
CSS
* {
margin:0;
padding:0;
outline:none;
}
#content {
width:670px;
float:left
}
.list li {
list-style:none;
width:300px;
float:left;
height:120px;
margin: 10px 25px 20px 0;
}
.clearfloat {
display:inline-block
}

Т.е. задана фиксированная ширина content (670px), внутри которого помещается одной строкой список li у которого ширина тоже ограничена (300px). Не умещаясь в 670px список продолжается с новой строки. Регулируя ширину и отступы у content и li можно менять количество колонок 1, 2, 3…

Проверил в IE 8.0, Mozilla 3.0, Opera 9.62 и 10.0, Chrome 3.0

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

Показываю на примере дефолтной темы:
Есть цикл (привожу его отрывок)

<div class="post" id="post-<?php the_ID(); ?>">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(__('Permanent Link to %s'), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a></h2>
    <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
        <div class="entry">
            <?php the_excerpt(); ?>
        </div>
</div>

Ключевым моментом здесь выступает class="post"

В CSS файл добавляем:

.post {
  width:220px;
  float:left;
}

И не забываем изменить ширину область вывода записей:

#content {
width: /необходимая ширина/;
}

Таким образом мы получаем 2, 3, 5 10 колонок в зависимости от фантазии. В этом варианте количество колонок будет зависеть от ширины определенной для всех записей и ширины области где они будут выводится. В данном случае это #content

После вставки кода в php шаблон список статей выводиться в виде заголовков,
но этот список дублирует те статьи которые уже выведены вверху полностью.
может быть есть вариант решения проблемы,когда допустим в разделе 100 статей
5 из них выводиться полностью, а все остальные 95 в виде только заголовков
вот файл пхп кода странички, что отредоктировать:

<?php get_header(); ?>
<div id="main-block">
    <div id="content">
    <?php if (have_posts()) : ?>
        <ul>
        <?php while (have_posts()) : the_post(); ?>
            <li class="post" id="post-<?php the_ID(); ?>">
                
                <div class="title">
                    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
                    <span class="comments"><?php comments_popup_link('Ваш отзыв', '1 отзыв', 'Отзывов: %'); ?></span>
                </div>
                <div class="postdata">
                    <span class="date"><?php the_time('d M Y') ?>&nbsp;/&nbsp;</span>
                    <span class="category"><?php the_category(', ') ?></span>
                </div>
                
                <div class="entry">
                    <?php the_content('Читать полностью &raquo;'); ?>
                </div>
                <?php the_tags( '<p>Tags: ', ', ', '</p>'); ?>
            </li>
        <?php endwhile; ?>
        </ul>
        
        <div class="navigation">
            <span class="alignleft"><?php next_posts_link('Следующие записи') ?></span>
            <span class="alignright"><?php previous_posts_link('Предыдущие записи') ?></span>
        </div>
        
        <?php else : ?>
    
            <h2 class="t-center">Не найдено</h2>
            <p class="t-center">К сожалению, по вашему запросу ничего не найдено.</p>

        <?php endif; ?>
    </div>
</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Отвечал тут – http://mywordpress.ru/support/viewtopic.php?id=10088

Интересно: в WP есть какой-нибудь аналог <?php the_ID(); ?>, но только, чтобы выводил ID последнего поста? the_last_ID();, например… чтобы можно было красиво написать, что-то вроде <?php the_last_ID(‘2’); ?> – «предпоследний ID» или «второй с краю». Тогда бы можно было бы легко «пропустить последние 5 постов» например так: <?php if (the_last_ID() | the_last_ID(‘2’) | the_last_ID(‘3’) | the_last_ID(‘4’) | the_last_ID(‘5’) | ) continue; ?>

http://codex.wordpress.org/Template_Tags/query_posts#Offset_Parameter

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

<div id="content">
<?php if (have_posts()) : ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li class="post" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
</div>
<div class="entry">
<?php the_content(‘Читать полностью &raquo;’); ?>
</div>
<?php the_tags( ‘<p>Tags: ‘, ‘, ‘, ‘</p>’); ?>
</li>
<?php endwhile; ?>
</ul>
<?php else : ?>
<?php endif; ?>
</div>

а вот что у меня получилось:

<div id="content">
<?php if (have_posts()) : ?>
<ul>
<?php query_posts(‘showposts=2’);
$ids = array();
while (have_posts()) : the_post();
$ids[] = get_the_ID(); ?>
<li class="post" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
</div>
<div class="entry">
<?php the_content(‘Читать полностью &raquo;’); ?>
</div>
</li>
<?php endwhile; ?>
</ul>
<ul class="list clearfloat">
<?php
query_posts(array(‘post__not_in’ => $ids));
while (have_posts()) : the_post(); ?>
<li>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
</li>
<?php endwhile; ?>

</ul>

<?php else : ?>
<?php endif; ?>
</div>

Не хочу заводить новую тему, а не подскажите отчего может быть такое. То ли после DDoS-атак, то ли после еще чего но у некоторых файлов WP хозяином становлюсь не я, а httpd. А потому к ним нет доступа. Откуда берется этот пользователь httpd? Что это заглюк? Кто сталкивался? Спасибо.

Пользователь httpd (apache, www, nobody) – это пользователь, от имени которого работает Апач/php/WordPress. Все созданные движком файлы (аплоады, кеши, сайт-мапы) создаются от имени этого пользователя. У приличных хостеров в панели управления хостингом есть пункт "сменить владельца".

Кстати, доступ на чтение должен у Вас быть. Если нет (права у созданных движком файлов 600 или 400), то в это надо ткнуть носом хостера, ибо непорядок.

Так может быть, если нет шаблона категорий или архивов, а весь вывод идет посредством одного index.php. Ваш код должен быть только в index.php, а в шаблоне category.php ( который выводит категории) – обычный ( например тот, что был до переделки). Если нет – создайте.

Кстати, доступ на чтение должен у Вас быть. Если нет (права у созданных движком файлов 600 или 400), то в это надо ткнуть носом хостера, ибо непорядок.

Спасибо, понятно. Я хостеру сказал насчет владельца (самому изменить нельзя), он говорит перечислите файлы какие-надо назад поменять )) Попросил рекурсивно всю директорию. Поменял – помогло.

Так может быть, если нет шаблона категорий или архивов, а весь вывод идет посредством одного index.php...

Честно говоря, это для меня трудновато уразуметь. А догадаться что как сделать не смогу.

KraeveD, я отвечал Dekap.

Может кто-нибудь отредактировать любой стандартный шаблон вордпресса таким образом чтобы структура главной страницы и категорий была как здесь: dushapoeta.ru. т.е. на главной странице выводяться статьи,лучше из одной категории (можно любой) – несколько целиком, а все остальные – ссылками, а в категориях можно все – ссылками. Для примера шаблон можно скачать такой: wpthemes.ru/72. Цена вопроса – готов заплатить 15 баксов за редактирование пхп кода. аська – троечка68-семёрочка49-цифра шесть35

Anonymous
Отправить
Ответ на: