WordPress get_pages分类参数

时间:2011-04-25 04:36:49

标签: wordpress taxonomy

如果有人尝试使用自定义分类法通过get_pages过滤内容,那就太好了。我有一个标有“衣服”的自定义帖子类型,我试图通过仅拉动“性别”分类中具有“女性”子弹的“衣服”件来创建“上一个和下一个”导航。 / p>

然而,上一个和下一个链接正在拉动所有衣服,包括我的“男装”件。任何人都有自定义分类和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>

1 个答案:

答案 0 :(得分: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()可能有用。