我想知道如何编写代码,按照自定义分类法中的术语排列帖子列表?
Here is what I have so far:
我有一个页面,在一个页面上以自定义帖子类型列出所有帖子在每个CPT帖子下,我都检索了要显示的自定义分类法
我允许CPT帖子按Alpha、ASC和DESC进行排序。最后,看起来是这样的:The Goal:
我想添加一些链接与“按标题排序”的链接,我已经有了。
具体来说,我想按(alpha)导演、工作室和剧集排序,因为我知道这些是字符串或数字。
我还想按首播季、按年份订购,但我可能需要改变这些术语的命名方式(可能只会以目前的方式列出2011年冬季、2012年冬季)。
按流派分类是另一个我完全不打算解决的问题,因为有多个术语。
我不太确定该怎么做,可能需要帮助。
The Page\'s Current Code:
<div class="content-container">
<a href="?sort=titleup">Sort By Title A-Z</a>
<a href="?sort=titledown">Sort By Title Z-A</a>
<hr>
<?php
$type = \'animes\';
$args=array(
\'post_type\' => $type,
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'caller_get_posts\'=> 1
);
if( isset( $_GET[\'sort\'] ) && "titleup" == $_GET[\'sort\'] ){
$args[\'orderby\'] = \'title\';
$args[\'order\'] = \'ASC\';
}
if( isset( $_GET[\'sort\'] ) && "titledown" == $_GET[\'sort\'] ){
$args[\'orderby\'] = \'title\';
$args[\'order\'] = \'DESC\';
}
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<div class="anime-title"><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?> Page"><?php the_title(); ?></a></div>
<br><span>Director:</span>
<?php
$taxonomy = \'director\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>
<br><span>Studio:</span>
<?php
$taxonomy = \'studio\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>
<br><span>Season Premiered:</span>
<?php
$taxonomy = \'season\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>
<br><span>Episodes:</span>
<?php
$taxonomy = \'episodes\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>
<br><span>Genres:</span>
<?php
$taxonomy = \'genre\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>
<hr>
<?php
endwhile;
}
wp_reset_query(); // Restore global post data stomped by the_post().
?>
Other Information:
单击该节目的标题后,读者将进入另一个页面,该页面显示该节目的图像、再次列出的自定义分类法以及与该节目相关的所有其他帖子(通过标签连接为该节目的名称)。e、 如果有一篇评论或讨论贴上了“男孩和女孩”的标签,它会出现在这个页面上。
单击分类术语后,读者将进入列出与该术语相关的所有显示的页面。e、 g,该工作室制作的所有节目,所有12集的节目,所有“动作”类型的节目。
上述内容可能会对我如何设置它的总体结构产生疑问。我对web开发和wordpress非常陌生,所以我在所做研究的基础上尽了最大努力。
我还有一些其他未回复的堆栈交换帖子,它们深入讨论了关于构建网站这一部分的细节和问题。我们也非常感谢您的帮助,或者如果您需要进一步澄清我的尝试。
Custom Post Type and Taxonomies Structure
Creating a Sortable Table by Taxonomy Terms
非常感谢您的时间和迄今为止给我的帮助。