Шаблоны пользовательских таксономических архивов

Мне действительно нужна помощь с шаблонами Taxonoy и CPT, я пытаюсь решить эту проблему уже неделю, и я просто запутываюсь, кажется, ничто из того, что я пытаюсь сделать, не работает так, как я надеялся?

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

Деталь :

у меня есть Пользовательский тип сообщения названный — ‘Машины

у меня есть таксономия привязанный к этому имени —Машина-типа

При этом 3 типа машин — ‘электрический‘-‘механический‘-‘солнечный

Я хотел бы архив длямашины«Показать список терминов под»машина-типасо ссылкой на этот архив терминов. Я не хочу показывать сообщения, только термины в виде списка.

Я полагаю, что этот первый файл будет archive-machines.php

Машины (archive-machines.php)

  -electrical
-mechanical
-solar

Когда я перехожу по одной из этих ссылок на термины, мне бы хотелось, чтобы список постов этого термина отображался только сЗаголовок поста‘, который ссылается на это single.php (довольно стандартно)

Что я не могу понять, так это как все условиямашина-типаиспользовать тот же шаблон. Большая часть кода, который я видел, требует, чтобы вы изменили имя термина, мне нужно, чтобы он был динамическим.

Моя конечная цель — использовать некоторые настраиваемые поля, но на данный момент я просто хочу, чтобы шаблоны работали и пошли дальше.

Я чувствую, что мой рот написал чеки, что мой мозг не может обналичить! Любая помощь будет принята с благодарностью! 🙂

0

Решение

WordPress не имеет стандартного шаблона для архивации терминов таксономии, поэтому шаблон archive-machines.php не принесет вам никакой пользы. Лучше всего создать пользовательскую страницу и шаблон, и в этом шаблоне использовать функцию get_terms (), чтобы получить все термины в таксономии типов машин и вывести ваш список.

https://codex.wordpress.org/Function_Reference/get_terms

Эта функция вернет массив объектов term. Из этого вы можете получить идентификатор, слаг, имя и т. Д. Чтобы получить ссылку на термин, вы должны использовать функцию get_term_link ().

https://codex.wordpress.org/Function_Reference/get_term_link

Как только вы щелкнете по одному из этих терминов, он получит доступ к шаблону taxonomy-machine-types.php. Эти шаблоны таксономии настроены для отображения списка сообщений на основе выбранного термина таксономии.

0

Другие решения

В конце я использовал эти 2 шаблона, а machine-archive.php использовал несколько настраиваемых полей.

<?php

/*
* Custom WordPress Template: archive-machine
*/

// Remove stuff

remove_action( 'genesis_loop', 'genesis_do_loop' );

// Add our custom loop

add_action( 'genesis_loop', 'machine_archive_loop' );

function machine_archive_loop() {

$libargs=array(
'hide_empty'    => 1,
'parent'        => 0,
'taxonomy'      => 'machine-type');

$libcats=get_categories($libargs);

foreach($libcats as $lc){
$termlink = get_term_link( $lc->slug, 'machine-type' );

?>

<div class="row tax-list">
<div class="small-12 medium-4 large-3 columns tax-img">
<a href="<?php echo $termlink; ?>"><img src="<?php the_field('tax_image' , 'machine-type_'.$lc->term_id); ?>" alt="view range"/></a>
</div>

<div class="small-12 medium-8 large-9 columns tax-description">
<h2><a  href="<?php echo $termlink; ?>"><?php echo $lc->name; ?> Range</a></h2>
<?php the_field('tax_description', 'machine-type_'.$lc->term_id); ?><a  href="<?php echo $termlink; ?>"> ....View the range</a>
</div>

</div>

<?php }// use reset postdata to restore orginal query
wp_reset_postdata();

}genesis();

это для таксономии-машины-типа.php

<?php
// Remove stuff
remove_action( 'genesis_loop', 'genesis_do_loop' );

// Add our custom loop
add_action( 'genesis_loop', 'tax_archive_loop' );
function tax_archive_loop() {

$taxonomy = 'machine-type';
$queried_term = get_query_var($taxonomy);
$terms = get_terms($taxonomy, 'slug='.$queried_term);// Define the query
$args = array(
'post_type' => 'machines',
'machine-type' => $queried_term ,
'posts_per_page' => -1,
);

// run the query
$query = new WP_Query( $args );
if( $query->have_posts() ) {

// Start the Loop
while ( $query->have_posts() ) : $query->the_post();  ?>

<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p><?php echo get_the_date(); ?></p>
<div class="entry-content">
<?php echo the_content(); ?>
<a href="<?php echo get_permalink(); ?>"> ... Find Out More</a>
</div>

<?php endwhile;?>

<hr/>

<?php

}
// use reset postdata to restore orginal query
wp_reset_postdata();
}
genesis();
0