daymon
  • 0
Новичок

Как вывести в столбцах только заголовки сообщений из выбранной категории?

  • 0

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

Поэтому мне нужен упорядоченный по алфавиту список со ссылками на все сообщения в выбранной категории. У меня есть код для этого, но мне нужно разбить список на столбцы. Вот код, который у меня есть, отображающий сообщение…

<?php
if (is_page() ) {
$category = get_post_meta($posts[0]->ID, 'category', true);
}
if ($category) {
  $cat = get_cat_ID($category);
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $post_per_page = -1; // -1 shows all posts
  $do_not_show_stickies = 1; // 0 to show stickies
  $args=array(
    'category__in' => array($cat),
    'orderby' => 'title',
    'order' => 'asc',
    'paged' => $paged,
    'posts_per_page' => $post_per_page,
    'caller_get_posts' => $do_not_show_stickies
  );
  $temp = $wp_query;  // assign orginal query to temp variable for later use   
  $wp_query = null;
  $wp_query = new WP_Query($args); 
  if( have_posts() ) : 
        while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <_li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to          <?php the_title_attribute(); ?>"><?php the_title(); ?></a><_/li>

Я знаю, что мои навыки HTML не самые лучшие, но вот вся страница шаблона…

https://gist.github.com/889340

Share
  1. Похоже, HTML в вашем примере немного искажен: id="post"> отключен сам по себе. Можете ли вы обновить свой вопрос, чтобы показать полный код для генерации HTML?

    • 0
    • @t310s: Ты мой герой!!! Это прекрасно работает, но есть только одно но. Как сделать так, чтобы алфавитный порядок был вертикальным, а не горизонтальным? Спасибо большое, чувак, это именно то, что мне было нужно. Я везде искал эту штуку!

      • 0
    • @Daymon — это именно то, что я имел в виду, когда упомянул, что не знаю, какую структуру вы имели в виду, потребуются некоторые корректировки, чтобы вместо этого результаты отображались вертикально. Я скоро обновлю ответ, просто нужно подумать о том, как реорганизовать код.. 🙂

      • 0
    • @Daymon — Ответ обновлен.. Выбрано использование таблицы, но с использованием DIV в качестве виртуальных ячеек таблицы. Если вам нужна помощь в создании CSS для улучшения результатов, дайте мне знать.

      • 0
    • @t31os — Ты классный! Это перечислило его в вертикальном алфавитном порядке, но как мне разделить его на два столбца? Могу ли я сделать 2 отдельных списка вместо использования тега DIV? Затем просто перемещайте его влево с любой шириной?

      • 0
    • У вас уже должно быть два столбца, вторая половина результатов должна быть указана во втором столбце таблицы, разве этого не происходит?

      • 0
  2. Обновленный ответ:
    используйте два списка с плавающей запятой для эмуляции столбцов, тот же подход, что и раньше.

    <?php
    /*
    Template Name: PageOfPosts
    */
    
    get_header(); ?>
    
    <div id="content">
        <div class="t">
            <div class="b">
                <div class="l">
                    <div class="r">
                        <div class="bl">
                            <div class="br">
                                <div class="tl">
                                    <div class="tr">
                                        <div class="pad">
    
                                            <?php while( have_posts() ) : the_post(); ?>
    
                                            <?php 
                                            $category = get_post_meta( get_the_ID(), 'category', true); 
                                            $img_style = 'style="width:606;height:34;position: absolute; padding-top:1px; padding-left: 2px; z-index:9999; background: no-repeat;"';
                                            ?>
    
                                            <div class="post" id="post-<?php the_ID(); ?>">
    
                                                <h1><?php the_title(); ?></h1>
                                                <img src="../wp-content/themes/DD4L/images/leafhr.png" <?php? echo $img_style;?>>
                                                <br />
    
                                                <div class="entry">
                                                    <?php the_content(); ?>
                                                    <?php wp_link_pages(array('before' => 'Pages: ', 'next_or_number' => 'number')); ?>
                                                </div>
    
                                                <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
    
                                            </div>
    
                                            <?php endwhile; ?>
    
                                            <br /><br />
    
                                            <?php if( !empty( $category ) ) : ?>
    
                                            <?php
                                            $args = array(
                                                'orderby' => 'title',
                                                'order' => 'asc',
                                                'nopaging' => true,
                                                'ignore_sticky_posts' => true,
                                                'tax_query' => array(
                                                    array(
                                                        'taxonomy' => 'category',
                                                        'terms' => array( $category ),
                                                        'field' => 'slug'
                                                    )
                                                )
                                            );
                                            $category_query = new WP_Query( $args );
                                            ?>
    
                                            <?php if( $category_query->have_posts() ) :  ?>
    
                                            <?php
                                            $total = $category_query->post_count;
                                            $quart = $total / 4;
    
                                            if( floor( $quart ) != $quart )
                                                $quart = ceil( $quart );
                                            $counter = 0;
                                            ?>
    
                                            <div class="float-container">
                                                <ul class="alignleft">
                                                <?php while( $category_query->have_posts() ) : $category_query->the_post(); $counter++; ?>
    
                                                    <li>
                                                        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
                                                    </li>
    
                                                <?php if( $quart == $counter ) : $counter = 0; ?>
                                                </ul>
    
                                                <ul class="alignleft">
                                                <?php endif; ?>
    
                                                <?php endwhile; ?>
                                                </ul>
    
                                                <div class="clear"></div>
                                            </div>
    
                                            <?php endif; ?>
    
                                            <?php endif; ?>
    
                                        </div>
                                        <div class="clear"></div>
    
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    Предыдущие комментарии и код см. в редакции редактирования.

    • 0
  3. Не глядя на ваш код и просто не задумываясь, вы можете настроить новый WP-Query для каждого столбца.

    В ваших аргументах установите ‘posts_per_page’ => 10 или любое количество постоянных ссылок, которые вы хотите отображать в каждом столбце. Назначьте столбцам класс ul или div и поместите их слева в свой css.

    • 0
  4. Вы также можете использовать плагин «Список категорий», который позволит вам вставить шорткод на любую страницу или сообщение, чтобы показать соответствующие сообщения по категориям или по тегам. Вы можете настроить сортировку по порядку, скрыть/показать отрывки и многое другое.

    Скачать: http://wordpress.org/extend/plugins/list-category-posts/

    Список полных команд: http://foro.picandocodigo.net/discussion/251/list-category-posts-documentation/

    • 0

Оставить ответ

You must login to add an answer.