永久链接结构(按发布的元值)

时间:2013-01-25 作者:Mike Madern

我有以下问题:

两种自定义帖子类型,让我们调用它们cpt1cpt2.

在里面cpt2, 我有一个自定义的元框,你可以从中选择帖子cpt1, 它的post ID 存储在名为postid.

的permalink结构cpt2/%post_type%/%post_name%/.

我想实现的是:

何时postid 有一个post ID 属于cpt1 (由于这是一个必填字段,因此始终如此),该特定职位的永久性结构将成为/selected_post_slug/%post_type%/%post_name%/.

  • cpt2 存档页必须由可用/selected_post_slug/cpt2/, 所以看起来cpt1 页面有自己的cpt2 存档
  • 我通过在我的functions.php 文件:

    $wp_rewrite->add_rewrite_tag( \'%selected_meta%\', \'([^&]+)\', \'?meta=\' );
    
    function extra_post_link( $permalink, $post, $leavename ) {
        if ( stripos( $permalink, \'%selected_meta%\' ) == false )
            return $permalink;
    
        if ( is_object( $post ) && $post->post_type == \'ervaring\' ) {
            $_selected_post_slug = \'\';
            $_selected_post_id = get_post_meta( $post->ID, \'rating-post\', true );
    
            if ( $_selected_post_id )
                $_selected_post_slug = get_page_uri( $_selected_post_id );
    
            if ( ! $_selected_post_slug )
                return str_replace( \'%selected_meta%\', \'\', $permalink );
    
            return str_replace( \'%selected_meta%\', "$_selected_post_slug/", $permalink );
        }
    
        return $permalink;
    }
    
    add_filter( \'post_type_link\', \'extra_post_link\', 10, 3 );
    
    我学习了一个关于adding rewrite tags in the permalink structure 威奇向我展示了如何解决第一件事。

    但不幸的是,我仍在研究第2点的解决方案。

    我能不能想一想这个问题,以帮助我走得更远一些?非常感谢您的帮助。

    1 个回复
    最合适的回答,由SO网友:Mike Madern 整理而成

    我更改了此行:

    $wp_rewrite->add_rewrite_tag( \'%selected_meta%\', \'([^&]+)\', \'?meta=\' );
    
    进入:

    $wp_rewrite->add_rewrite_tag( \'%selected_meta%\', \'([^&]+)\', \'post_type=ervaring&meta=\' );
    
    威奇对第1期和第2期都有足够的支持。

    结束

    相关推荐

    Archive permalinks

    这个网站对我学习如何使用add\\u过滤器重写永久链接非常有帮助,可以解决我们将两个博客合并为一个博客时遇到的问题。但是,我确实有一件物品我找不到任何提示:在基于日期的存档链接上,即www.domain。com/2011/12/我只是想把它们翻译成:www.domain。com/news/2011/12/提前感谢您的帮助。