php WordPress重定向自定义Posttype

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WordPress重定向自定义Posttype相关的知识,希望对你有一定的参考价值。

<?php

function register_products() {

    add_rewrite_tag('%productcat%','(.+)');

    register_post_type( 'products',
        array(
            'labels'      => array(
                'name'          => __( 'Products', 'awave' ),
                'singular_name' => __( 'Product', 'awave' ),
            ),
            'public'      => true,
            'has_archive' => false,
            'with_front' => false,
            'menu_icon'   => 'dashicons-cart',
            'rewrite' => array('slug' => __('produkter/%productcat%', 'awave'), 'with_front' => false),
            'supports'    => array( 'title', 'editor', 'thumbnail' ),
            'taxonomies'  => array( 'producttype' ),
        )
    );

    register_taxonomy(
        'producttype',
        'products',
        array(
            'label'             => __( 'Producttype', 'awave' ),
            'public'            => true,
            'show_admin_column' => true,
            'publicly_queryable' => true,
            'rewrite'     => array( 'slug' => __( 'produkter', 'awave' ) ),
            'hierarchical'      => true,
        )
    );

}

add_action( 'init', 'register_products' );


// Function to rewrite custom post type URLS
function stegia_product_slug( $post_link, $id = 0 ){
    $post = get_post($id);
    if ( is_object( $post ) ){
        $terms = wp_get_object_terms( $post->ID, 'producttype' );
        if( $terms ){

            $productSlug = '';

            $ancestors = get_ancestors( $terms[0]->term_id, 'producttype', 'taxonomy' );
            krsort($ancestors);

            foreach($ancestors as $anc) :
                $term = get_term( $anc, 'producttype' );
                $productSlug .= $term->slug . '/';
            endforeach;

            $productSlug .= $terms[0]->slug;


            return str_replace( '%productcat%' , $productSlug , $post_link );
        }
    }
    return $post_link;
}
add_filter( 'post_type_link', 'stegia_product_slug', 1, 3 );

以上是关于php WordPress重定向自定义Posttype的主要内容,如果未能解决你的问题,请参考以下文章

登录 WordPress 后重定向

板邓:wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。

联系表单提交后如何重定向到感谢页面 - Wordpress 高级主题联系我们 php 模板 [关闭]

如何将 Wordpress 注销重定向到自定义 URL

根据带有参数的wordpress上的位置重定向到自定义网址

将 Wordpress 的登录/注册页面重定向到自定义登录/注册页面