Поддержка Проблемы и решения taxonomy страницы

  • На странице, хочу вывести таксономии (выпускаемая продукция) привязанные именно к этой странице. Вот код страницы:

    
    <?php
    /*
    Template Name: Один завод
    */
    ?>
    
    <?php get_header(); ?>
    <div id="mid" class="fix">    
    
    <div id="mainCol" class="fix">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    		<div class="post" id="post-<?php the_ID(); ?>">
    			<h1><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title() ?></a></h1>
    
    <div class="zavod">
    <div class="adsAndkontakt">
    <div class="zavod-contact">
    <ul>
    <li class="adress"><?php $key="address"; echo get_post_meta($post->ID, $key, true); ?></li>
    <div style="float: left;width: 220px;">
    <li class="telefon"><?php $key="fax"; echo get_post_meta($post->ID, $key, true); ?></li>
    <li class="telefon"><?php $key="telefon"; echo get_post_meta($post->ID, $key, true); ?></li>
    </div>
    
    <div style="float: left;width: 220px;">
    <li class="sait"><?php $key="www"; echo get_post_meta($post->ID, $key, true); ?></li>
    <li class="email"><?php $key="email"; echo get_post_meta($post->ID, $key, true); ?></li>
    </div>
    </ul>
    </div>
    <div class="ads336-280">
    <img style="width: 300px; height: 250px;" src="<?php bloginfo('template_directory'); ?>/images/336na280.png">
    </div>
    </div>
    			
    			
    
    <div class="vipuskaemaya-produksiya">  
    <h3>Выпускаемая продукция: </h3>
    
    <?php 
    
    $args = array( 'hide_empty=0' );
    $terms = get_terms('produkt', $args);
    
    // собираем их и выводим
    if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
    	$count = count($terms);
    	$i=0;
    	$term_list = '<ul class="produkt">';
    	foreach ($terms as $term) {
    		$i++;
    		$term_list .= '<li><a href="' . get_term_link( $term ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a></li>';
    		if ($count != $i) {
    
    		}
    		else {
    			$term_list .= '</ul>';
    		}
    	}
    	echo $term_list;
    }
    
    ?>
    
    </div>
    			
    			<p><?php the_content('<p class="serif">Читать запись полностью &raquo;</p>'); ?></p>
    			</div>
    		</div>
    		<?php endwhile; else: ?>
    		<div class="post">
    			<h2>Не найдено</h2>
    			<div class="entry">
    				<p>Извините, но того, что Вы искали, тут нет...</p>
    			</div>
    		</div>
    		<?php endif; ?>
    	</div>
    	
    	<?php include (TEMPLATEPATH . '/sidebar-zavod.php'); ?>
    </div>
    <?php get_footer(); ?>

    Я так пониманию, что код вывода таксономий прописан не верно. Подскажите пожалуйста как правильно ?)))

Просмотр 15 ответов — с 1 по 15 (всего 29)
  • Неужели некому помочь в этом вопросе ?

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Неужели некому помочь в этом вопросе ?

    Я боюсь никто не понял вопроса.

    Причём страница к таксономии, к какой таксономии? Что вообще Вы хотите сделать/получить?

    Я так понял что на статичекой странице, посвящённой заводу и для которой создан специальный шаблон, надо вывести категории продукции, выпускаемой этим заводом.

    Если это так — так это элементарно и существует масса способов реализации этой хотелки. От правильного кода вывода категорий до применения плагинов.

    SeVlad
    Вроде все написал разжёванным образом. Попробую более шире:
    Итак. Сайт-каталог производственных предприятий. Для страниц предприятий — создан шаблон страницы (код выше).
    Таксономия produkt предназначена для вывода продукции предприятий. Код который я для этого использовал:

    
    <?php 
    
    $args = array( 'hide_empty=0' );
    $terms = get_terms('produkt', $args);
    
    // собираем их и выводим
    if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
    	$count = count($terms);
    	$i=0;
    	$term_list = '<ul class="produkt">';
    	foreach ($terms as $term) {
    		$i++;
    		$term_list .= '<li><a href="' . get_term_link( $term ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a></li>';
    		if ($count != $i) {
    
    		}
    		else {
    			$term_list .= '</ul>';
    		}
    	}
    	echo $term_list;
    }
    
    ?>

    По логике, если предприятие выпускает продукт «Радиатор», то, на странице редактирования страницы, в таксономии добавляем этот продукт, и на странице предприятия должен отображаться только этот продукт. Но, данный код выводит все продукты таксономии (радиатор, труба, задвижка и т.д.).
    По этому и пришёл сюда с вопросом, как прописать правильно ?

    Модератор Юрий

    (@yube)

    на странице редактирования страницы, в таксономии добавляем этот продукт

    Как и куда «добавляем»? У страниц вообще нет таксономий.

    код выводит все продукты таксономии

    Видимо, Вы хотели сказать «термы». Таксономия — виртуальный общий признак, ее вывести невозможно.
    Что запрошено, то и выводится. get_terms('produkt' — получить все термы таксономии ‘product’.

    Вы не рассказали, как у Вас организована связь страницы-предприятия с термами-продуктами.

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Таксономия produkt предназначена для вывода продукции предприятий

    Какой тип таксономии? Какое отношение она имеет к страницам?

    По этому и пришёл сюда с вопросом, как прописать правильно ?

    Вам бы для начала вообще стоило рассказать задачу и спросить как решить. А Вы начали с показа Ваших решений.

    Пока не ясна задача — смотреть в код как-то не очень весело. (в см — искать ошибки)

    Видимо, Вы хотели сказать «термы».

    Пардон !))

    Какой тип таксономии?

    Тип таксономии page

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Тип таксономии page

    Нет такого типа таксономии.
    Таксономия бывает иерархическая (аля рубрики) и линейная (аля метки).
    А «page» — это такой тип контента.

    https://codex.wordpress.org/Taxonomies
    https://codex.wordpress.org/Post_types

    Страницы же дефолтно никак не относятся ни к какой таксономии.

    Нет такого типа таксономии.
    Таксономия бывает иерархическая (аля рубрики) и линейная (аля метки).
    А «page» — это такой тип контента.

    А это не тип: register_taxonomy(‘produkt’, array(‘page’),

    Какой тип таксономии?

    Линейный:’hierarchical’ => false,

    Модератор Юрий

    (@yube)

    register_taxonomy(‘produkt’, array(‘page’),

    Начинает проясняться. Записям типа page добавлена таксономия product. Верно?
    Если да, то для получения всех термов таксономии, относящихся к текущей записи, нужно использовать get_the_terms().

    Начинает проясняться. Записям типа page добавлена таксономия product. Верно?

    Да !!!

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    А это не тип: register_taxonomy(‘produkt’, array(‘page’),

    На тип таксономии указывает значение hierarchical.
    А вторым параметром в этой функции указывается связь с типом контента.
    Ок, со связями стало понятно. Но покажите весь код функции и расскажите — что побудило Вас делать на страницах это всё?

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Записям типа page

    Страницам же. Не записям.

    Если да, то для получения всех термов таксономии, относящихся к текущей записи, нужно использовать get_the_terms().

    В коде вызова терминов таксономии вместо get_terms() прописать get_the_terms() ?

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