Мне действительно нужна помощь с шаблонами Taxonoy и CPT, я пытаюсь решить эту проблему уже неделю, и я просто запутываюсь, кажется, ничто из того, что я пытаюсь сделать, не работает так, как я надеялся?
Может ли кто-нибудь объяснить или показать мне, как этого добиться, я подумал о том, чтобы заплатить кому-то за это, поскольку я не программист, я могу с радостью редактировать рабочий код, но не могу его написать. Я думал, что это будет намного проще, чем это.
Деталь :
у меня есть Пользовательский тип сообщения названный — ‘Машины‘
у меня есть таксономия привязанный к этому имени —Машина-типа‘
При этом 3 типа машин — ‘электрический‘-‘механический‘-‘солнечный‘
Я хотел бы архив длямашины«Показать список терминов под»машина-типасо ссылкой на этот архив терминов. Я не хочу показывать сообщения, только термины в виде списка.
Я полагаю, что этот первый файл будет archive-machines.php
Машины (archive-machines.php
)
-electrical
-mechanical
-solar
Когда я перехожу по одной из этих ссылок на термины, мне бы хотелось, чтобы список постов этого термина отображался только сЗаголовок поста‘, который ссылается на это single.php
(довольно стандартно)
Что я не могу понять, так это как все условиямашина-типаиспользовать тот же шаблон. Большая часть кода, который я видел, требует, чтобы вы изменили имя термина, мне нужно, чтобы он был динамическим.
Моя конечная цель — использовать некоторые настраиваемые поля, но на данный момент я просто хочу, чтобы шаблоны работали и пошли дальше.
Я чувствую, что мой рот написал чеки, что мой мозг не может обналичить! Любая помощь будет принята с благодарностью! 🙂
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. Эти шаблоны таксономии настроены для отображения списка сообщений на основе выбранного термина таксономии.
В конце я использовал эти 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();