我真的很喜欢Taxonoy模板和CPT的一些帮助,我一直试图解决这个问题一周,我只是变得更加困惑,我尝试的任何东西似乎都按照我希望的方式工作? / p>
任何人都可以解释或告诉我如何实现这一点,我考虑付钱给别人这样做,因为我不是编码员,我可以很愉快地编辑工作代码,但不能写它。我虽然这比这更容易。
细节:
我有自定义帖子类型命名 - '计算机'
我有一个分类附加到名为 - '计算机类型'
在这下面是3种机器类型 - '电气' - '机械' - '太阳能'
我希望“计算机”的存档显示“计算机类型”下的术语列表,其中包含指向该术语存档的链接。我不想显示帖子,只是作为列表的条款。
我相信第一个文件是archive-machines.php
机器(archive-machines.php
)?
-electrical
-mechanical
-solar
当我按照其中一个术语链接时,我希望它显示该术语下的帖子列表,只显示链接到single.php
的“帖子后标题” (非常标准)
我无法解决的问题是,如何使用“机器类型”下的所有条款来使用相同的模板。我见过的大多数代码都要求你更改一个术语的名称,我需要它是动态的。
我最终的目标是使用一些自定义字段,但目前我只想让模板工作并从那里开始。
我觉得我的嘴里写着检查我的大脑无法兑现!任何帮助将不胜感激 ! :)
答案 0 :(得分:0)
Wordpress没有用于归档分类术语的标准模板,因此archive-machines.php模板对您没有任何帮助。您最好创建一个自定义页面和模板,并在该模板中使用get_terms()函数来获取机器类型分类中的所有术语并输出您的列表。
https://codex.wordpress.org/Function_Reference/get_terms
此函数将返回一个term对象数组。从这里你可以获得ID,slug,名称等。为了获得该术语的链接,你将使用get_term_link()函数。
https://codex.wordpress.org/Function_Reference/get_term_link
点击其中一个术语后,它将访问taxonomy-machine-types.php模板。这些分类模板设置为根据所选的分类术语显示帖子列表。
答案 1 :(得分:0)
我最后使用了这两个模板,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();
这是针对taxonomy-machine-type.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();