2011-04-25 42 views
2

好奇,如果有人尝试过使用自定义分类法通过get_pages过滤内容。我有一个标有“衣服”的自定义帖子类型,我试图通过拉动“性别”分类中具有“女性”slu slu的“衣服”片段来创建“上一个&下一个”导航。WordPress的get_pages分类标准参数

但是,上一个和下一个链接正在拉动所有衣服,包括我的“男装”。任何人都有自定义分类和get_pages经验吗?

<?php 

$args = array(
     'sort_column' => 'menu_order', 
     'sort_order' => 'desc', 
     'post_type' => 'clothing', 
     'post_status' => 'publish', 
     'gender'=> 'female' 
); 

$list = get_pages($args); 
$pages = array(); 
foreach ($list as $page) { 
    $pages[] += $page->ID; 
} 

$current = array_search($post->ID, $pages); 
$prevID = $pages[$current-1]; 
$nextID = $pages[$current+1]; 
?> 

<div class="post-nav"> 
    <?php if (!empty($prevID)) { ?> 
    <a href="?pID=<?php echo $prevID ?>" title="<?php echo get_the_title($prevID); ?>" class="left">&#171; PREVIOUS</a> 
    <?php } 
    if (!empty($nextID)) { ?> 
    <a href="?pID=<?php echo $nextID ?>" title="<?php echo get_the_title($nextID); ?>" class="right">NEXT &#187;</a> 
    <?php } ?> 
</div> 

回答

0

连用你的代码this post on advance taxonomy querying,以及与此想出了:

<?php 

$myquery = array(
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'meta_key' => 'whatever', 
    'orderby' => 'meta_value', 
    'order' => 'DESC', 
    'post_type' => 'your_post_type', 
); 

$myquery['tax_query'] = array(
    array(
     'taxonomy' => 'your_tax', 
     'terms' => array('your_term'), 
     'field' => 'slug', 
    ), 
    array(
     'taxonomy' => 'your_other_tax', 
     'terms' => array('your_other_term'), 
     'field' => 'slug', 
    ), 
); 

$queryObject = new WP_Query($myquery); 

while($queryObject->have_posts()) : $queryObject->the_post(); 

$posts_array[] = $post->ID; 

endwhile; 

wp_reset_query(); 

$current = array_search($post->ID, $posts_array); // returns key 
$prevID = $posts_array[$current - 1]; // get value from key 1 before 
$nextID = $posts_array[$current + 1]; // get value from key 1 after 

$prevLINK = get_permalink($prevID); 
$nextLINK = get_permalink($nextID); 

$prevTITLE = get_the_title($prevID); 
$nextTITEL = get_the_title($nextID); 

?> 

<div class="post-nav"> 
    <?php if (!empty($prevID)) { ?> 
     <a href="<?php echo $prevLINK; ?>" title="<?php echo $prevTITLE; ?>" class="left">&#171; PREVIOUS</a> 
    <?php } 
    if (!empty($nextID)) { ?> 
     <a href="<?php echo $nextLINK; ?>" title="<?php echo $nextTITLE; ?>" class="right">NEXT &#187;</a> 
    <?php } ?> 
</div> 

作品对我来说,它是非常该死的真棒......凭借着先进的分类查询奥托解释,你可真很好地控制下一个/以前的链接。尽管如此,如果没有你的原始代码,我也无法弄清楚这一点,所以对你和Otto来说这些疯狂的道具!

我会尝试通过自动检测页面中的条件来进一步微调此... get_the_term_list()可能会起作用。

相关问题