我有以下问题:
两种自定义帖子类型,让我们调用它们cpt1 和cpt2.
在里面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点的解决方案。
我能不能想一想这个问题,以帮助我走得更远一些?非常感谢您的帮助。
最合适的回答,由SO网友:Mike Madern 整理而成
我更改了此行:
$wp_rewrite->add_rewrite_tag( \'%selected_meta%\', \'([^&]+)\', \'?meta=\' );
进入:
$wp_rewrite->add_rewrite_tag( \'%selected_meta%\', \'([^&]+)\', \'post_type=ervaring&meta=\' );
威奇对第1期和第2期都有足够的支持。