我成功地完成了您所描述的操作,但用于自定义分类法。。用一小段额外的代码。毫无疑问,有一种更好的方法来编写代码,最重要的是,有一种更有效的方法来完成这一任务。
但这起到了作用,并且正在一个活跃的网站上工作。我将描述我所做的工作,您可以根据自己的需要修改代码:
My problem:和您一样,我希望有一个通用页面,可以显示我发送给它的任何分类术语,而不必创建分类slug。我的分类法中每个新术语的php文件。澄清一下:我的自定义帖子类型是视频,我的自定义分类法是视频类型
My solution我设法从分类法列表中获取分类法术语(当有人单击该术语时获取),然后将其发送到特定自定义帖子类型的存档页面。它读取该术语,然后使用该taxo0nmy术语显示帖子类型
My Code在网上某处找到这个。它将粘贴到函数文件中:
/*add a filter to pass queries to pages
can be sent like so: <?= add_query_arg(\'t\', \'argument\', home_url( \'/videos/\' )); ?>
can be called like so: $qvar = get_query_var(\'t\');
*/
add_filter(\'query_vars\', \'p_query\');
function p_query($qvars) {
$qvars[] = \'t\';
return $qvars;
}
在主页上,我使用wp查询将所有不同的“视频类型”列为可点击链接,以显示分类法中每个不同术语的最新帖子。
The Query
$term_args=array(
\'orderby\' => \'menu_order\',
\'order\' => \'DESC\'
);
$terms = get_terms($taxonomy,$term_args);
if ($terms) {
foreach( $terms as $term ) {
$args=array(
\'post_type\' => \'videos\',
\'video_types\' => $term->name ,
\'post_status\' => \'publish\',
\'posts_per_page\' => 1,
\'caller_get_posts\'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<div class="thumb">
<h3 class="darken"><?php echo $term->name;?></h3>
<?php
while ($my_query->have_posts()) : $my_query->the_post(); ?>
The Links然后,我将循环中的每个术语作为如下链接:
<a href="<?= add_query_arg(\'t\', strtolower($term->name), home_url( \'/videos/\' )); ?>">
<h3><?php echo $term->name;?></h3>
</a>
然后将该术语名称和URL一起发送到存档视频。php页面。链接最终如下所示:
http://thedomainname/videos/?t=theterm
然后是档案视频上的代码。php页面如下所示:
一
<a href="<?= add_query_arg(\'t\', strtolower($term->name), home_url( \'/videos/\' )); ?>">
<h3><?php echo $term->name;?></h3>
</a>
下面我可以列出该特定分类术语中的所有视频:<?php while (have_posts()) : the_post(); ?>
<?php the_post_thumbnail(); ?>
<?php endwhile;?>
所以这给了我一个通用页面,可以显示我发送给它的任何视频类型。。它允许网站所有者创建他们想要的任何新视频类型,并将自动作为链接显示在主页上。同样,我认为对PHP有更好的工作知识的人可以用更好的方式写这篇文章(我很乐意看到),但这个想法是存在的,而且是可行的。