Поддержка Проблемы и решения Вывод записей по меткам

  • Сделал свой шаблон, все работает, кроме вывода записей по меткам. Сейчас, если нажать на метку то появляется только текст «Tag Archives: название метки».
    Подскажите пожалуйста, в каком файле и какой код нужно прописать, что бы по клику на метку выводился список записей с такими же метками (с кратким описанием) ?

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Можете прямо в файле tag.php после вывода текста «Tag Archives: название метки» создать цикл вывода записей с нужным тегом например:

    <? query_posts(‘tag=cooking’); ?>
    <?php if ( ! have_posts() ) : ?><?php endif; ?>
    <?php while ( have_posts() ) : the_post(); ?>

    //Тут вывод заголовков и прочее

    <?php endif; ?>
    <?php endwhile; ?>

    Примерно так

    Сейчас я взял файл tag.php из стандартной темы, вот содержимое:

    <?php get_header(); ?>

    <section id=»primary»>
    <div id=»content» role=»main»>

    <?php if ( have_posts() ) : ?>

    <header class=»page-header»>
    <h1 class=»page-title»><?php
    printf( __( ‘Tag Archives: %s’, ‘twentyeleven’ ), ‘<span>’ . single_tag_title( », false ) . ‘</span>’ );
    ?></h1>

    <?php
    $tag_description = tag_description();
    if ( ! empty( $tag_description ) )
    echo apply_filters( ‘tag_archive_meta’, ‘<div class=»tag-archive-meta»>’ . $tag_description . ‘</div>’ );
    ?>
    </header>

    <?php twentyeleven_content_nav( ‘nav-above’ ); ?>

    <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>

    <?php
    /* Include the Post-Format-specific template for the content.
    * If you want to overload this in a child theme then include a file
    * called content-___.php (where ___ is the Post Format name) and that will be used instead.
    */
    get_template_part( ‘content’, get_post_format() );
    ?>

    <?php endwhile; ?>

    <?php twentyeleven_content_nav( ‘nav-below’ ); ?>

    <?php else : ?>

    <article id=»post-0″ class=»post no-results not-found»>
    <header class=»entry-header»>
    <h1 class=»entry-title»><?php _e( ‘Nothing Found’, ‘twentyeleven’ ); ?></h1>
    </header><!— .entry-header —>

    <div class=»entry-content»>
    <p><?php _e( ‘Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.’, ‘twentyeleven’ ); ?></p>
    <?php get_search_form(); ?>
    </div><!— .entry-content —>
    </article><!— #post-0 —>

    <?php endif; ?>

    </div><!— #content —>
    </section><!— #primary —>
    <?php get_footer(); ?>

    Подскажите, в какое именно место вставить ваш код?
    и, (‘tag=cooking’); здесь, вместо cooking нужно будет свои названия меток прописывать?

    Так вот:

    <?php get_header(); ?>
    <section id=»primary»>
    <div id=»content» role=»main»>

    <?php if ( have_posts() ) : ?>
    <header class=»page-header»>
    <h1 class=»page-title»><?php
    printf( __( ‘Tag Archives: %s’, ‘twentyeleven’ ), ‘<span>’ . single_tag_title( », false ) . ‘</span>’ );
    ?></h1>

    <?php
    $tag_description = tag_description();
    if ( ! empty( $tag_description ) )
    echo apply_filters( ‘tag_archive_meta’, ‘<div class=»tag-archive-meta»>’ . $tag_description . ‘</div>’ );
    ?>
    </header>

    <?php twentyeleven_content_nav( ‘nav-above’ ); ?>
    <? /*—————- ВОТ ЦИКЛ —————— */ ?>
    <? query_posts(‘tag=’.single_tag_title( », false ).»); ?>
    <?php if ( ! have_posts() ) : ?><?php endif; ?>
    <?php while ( have_posts() ) : the_post(); ?>

    <?php the_title(); ?>
    <?php _e( ‘Featured’, ‘twentyeleven’ ); ?>
    <?php the_excerpt(); ?>

    <?php endif; ?>
    <?php endwhile; ?>
    <? /* —————- КОНЕЦ ——————-*/ ?>
    <?php twentyeleven_content_nav( ‘nav-below’ ); ?>

    <?php else : ?>

    <article id=»post-0″ class=»post no-results not-found»>
    <header class=»entry-header»>
    <h1 class=»entry-title»><?php _e( ‘Nothing Found’, ‘twentyeleven’ ); ?></h1>
    </header><!— .entry-header —>

    <div class=»entry-content»>
    <p><?php _e( ‘Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.’, ‘twentyeleven’ ); ?></p>
    <?php get_search_form(); ?>
    </div><!— .entry-content —>
    </article><!— #post-0 —>

    <?php endif; ?>

    </div><!— #content —>
    </section><!— #primary —>

    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    убрал <?php endif; ?> на 28й строке и заработало) davidtm, спасибо вам большое! Подскажите ещё пожалуйста, что делает эта строчка? Она так и выводится: «title=»Permalink to первая запись»rel=»bookmark»>первая запись
    и, как вывести миниатюры.

    Она так и выводится: «title=»Permalink to первая запись»rel=»bookmark»>первая запись

    Это я уже убрал, просмотрите выше, хотел вывести линк к записи, это можете сами оформить как надо, вывод миниатюры будет так выглядеть

    <?php the_post_thumbnail(); ?>

    Если же необходимо первое изображение из поста вытащить, то иначе.

    а скажите, в какое именно место вставляется <?php the_post_thumbnail(); ?> ?

    В цикле, неважно где, можете перед <?php the_excerpt(); ?> поставить. Я надеюсь Вы понимаете разницу между миниатюрой прикрепленной к записи, и миниатюрой, которая создается выдеранием первого изображения из записи.

    Мой пример

    <?php the_post_thumbnail(); ?>

    относится к миниатюре прикрепленной к записи

    у меня в записи миниатюра, прикрепленная в визуальном редакторе к записи, хм, поставил перед <?php the_excerpt(); ?> — миниатюры нет

    а она у вас активирована в теме?? Возможно нет.
    Попробуйте вот что сделать.

    В файле functions.php в самом низу пропишите следующее

    add_theme_support(‘post-thumbnails’);

    // Если хотите использовать вызов функции, для начала мы должны убедиться,
    //что WordPress поддерживает вызов этой функции

    if ( function_exists(‘add_theme_support’) ) {
    add_theme_support(‘post-thumbnails’);
    }

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

    add_theme_support(‘post-thumbnails’); прописан, но миниатюры не выводятся
    davidtm, в любом случае, благодарю за подробные ответы, буду пробовать дальше.

    У Вас на главной миниатюры выводятся? Если да, то попробуйте содржимое цикла скопировать в tag.php, может что то упустили, на вскидку сейчас ничего сказать не могу, нет возможности сейчас проверить

    нет, не на главной, блог-отдельная страница, которая использует index.php, вот его содержимое:
    <?php get_header(); ?>
    <div class=»main-content»>
    <?php if(have_posts()) : ?>
    <?php while(have_posts()) : the_post(); ?>
    <div class=»post-main»>
    <h1>«><?php the_title(); ?> <span>(<?php the_date_xml(); ?>)</span></h1>
    <div class=»post»>
    «>
    <div class=»entry»><div id=»img1″><?php get_the_image( array( ‘meta_key’ => ‘image’, ‘size’ => ‘medium’, ‘width’ => ‘150’, ‘height’ => ‘150’, ‘image_class’ => ‘feature’ ) ); ?></div></div>
    <p><?php the_excerpt_reloaded(130, », ‘none’, TRUE, », FALSE, 2); ?></p>
    <p>«>Читать далее</p>
    <p><?php the_tags(); ?></p><div class=»post-date»>Дата: <?php the_time(‘d.m.’) ?><?php the_time(‘Y’) ?> | Рубрика: <?php the_category(‘, ‘) ?> | <?php comments_popup_link(‘Оставить комментарий’, ‘1 Комментарий’, ‘Комментарии (%)’); ?> </div>
    </div>
    </div>
    <?php endwhile; ?>
    <article id=»post-0″ class=»post no-results not-found»>
    <header class=»entry-header»>
    <h1 class=»entry-title»><?php _e( ‘Nothing Found’, ‘twentyeleven’ ); ?></h1>
    </header>
    <div class=»entry-content»>
    <p><?php _e( ‘Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.’, ‘twentyeleven’ ); ?></p>
    <?php get_search_form(); ?>
    </div>
    </article>
    <div class=»nav»>
    <?php posts_nav_link(); ?>
    </div>

    <?php endif; ?>
    </div>
    <?php get_footer(); ?>
    может нужно сюда вставить что-то из tags.php?

    davidtm, ещё раз спасибо — разобрался!

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Вывод записей по меткам» закрыта для новых ответов.