在Wordpress中将子术语重定向到其下的第一页

时间:2015-07-12 08:14:45

标签: php wordpress

是否可以在functions.php文件中执行以下操作?

我有以下网址结构:

hxxp://domain.com/custom-post-type-slug/parent-term-slug/child-term-slug/page-slug/

直接在父条款下,没有页面,只有子条款。

有没有办法重定向' root'儿童用语属于属于同一子女用语的第一个帖子?

hxxp://domain.com/custom-post-type-slug/parent-term-slug/child-term-slug/

需要重定向到:

hxxp://domain.com/custom-post-type-slug/parent-term-slug/child-term-slug/page-slug/

1 个答案:

答案 0 :(得分:2)

好吧,我的朋友你想要的是什么......非常奇怪的请求,但可能。

add_action('wp', 'get_first_child');

function get_first_child() {
    global $wp_query;

    if($wp_query->queried_object_id){
        $args = array(
            'post_parent' => $wp_query->queried_object_id,
            'numberposts' => -1,
            'order'=> 'ASC',
            'post_status' => 'published' 
        );
        $post = get_children($args);
        //here I test if there is more than one child.. if yes I stop here if you want it to keep going just remove this
        $post = (count($post) > 1) ? null : reset($post);

        if($post->guid){
            wp_redirect( $post->guid, 301 );
            exit;
        }
    }
}

那么我在这做什么?

我所做的就是让所有与你的主要职位相关的孩子,如果有一个以上的孩子,将其重置为第一个。

然后我得到他的guid并使用301重定向它。

Tadã......魔法完成了!

希望这就是你想要的:)