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

  • Здравствуйте. Одна из рубрик сайта является каталогом. Т.к. подрубрик много, решил использовать теги для большего удобства. Но мне нужно, чтобы посты по тегам в этой категории выводились по определенному правилу: Заголовки брались из поля Custom Fields и выводились по алфавиту. В итоге нашел такое решение (немного подправил):

    <?php query_posts(array('category__and'=>array(3),'meta_key'=>'SName','orderby'=>'meta_value','order'=>ASC,));
    if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <a>"  title="<?php the_title(); ?>">
    <h2>  <?php echo get_post_meta( get_the_ID(), 'SName', true); ?> </h2> </a> <?php endwhile; // end of the loop. ?>

    Я почти не разбираюсь в php, но, как я понимаю, код выводит из третьей рубрики все посты с полем SName и данные с него ставит вместо заголовка, выводя по алфавиту. Все хорошо, но, к моему сожалению, делает это он на всех страницах с тегами. А мне хотелось бы, чтобы по каждому тегу выводились только посты с этим тегом в категории ID3. Буду благодарен, если поможете разобраться и найти решение.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Решение подсказали в другом месте, но тем, кто ищет что-то подобное:

    <?php query_posts(array('category__and'=>array(3), 'tag__and'=>array($tag_id), 'meta_key'=>'SName','orderby'=>'meta_value','order'=>ASC,));if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    
    <a href="<?php the_permalink() ?>"  title="<?php the_title(); ?>"> <h2>  <?php echo get_post_meta( get_the_ID(), 'SName', true); ?> </h2> </a> <?php endwhile; // end of the loop. ?>

    category__and’=>array(3) — 3 здесь ID рубрики
    SName — поле в Custom Fields

    Если сортировка будет идти по 1 тэгу, то удобнее сменить

    ‘tag__and’=>array($tag_id)

    на
    'tag_id' => $tag_id

    Та же история и с категориями

    ‘category__and’=>array(3)

    на
    'cat'=> 3

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