私は私のカスタム投稿タイプartikelen
(正確なスラグ)のためにワードプレスでカスタムパーマリンクを構築しようとしています。私はコードをオンラインで見つけました、そしてそれはカスタム構造%postname%/%postid%
でリンクを変換することによって仕事をしているようです、しかし、私が私のパーマリンクを保存して、詳細ページに行くとき404エラーを得ます。
私は自分の作業方法を示すために自分のコードを投稿しています。
add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);
function wpse33551_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'artikelen' ){
return home_url( $post->post_name .'/'. $post->ID );
} else {
return $link;
}
}
add_action( 'init', 'wpse33551_rewrites_init' );
function wpse33551_rewrites_init(){
add_rewrite_rule(
'product/([0-9]+)?$',
'index.php?post_type=artikelen&p=$matches[1]',
'top' );
}
product/([0-9]+)?$
は、product/
の後に任意の数字または何もない(さらに末尾のスラッシュでもない)を意味します。これはあなたが達成したいことのようには思えません。
代わりに、次のことを試してください。
function wpse33551_rewrites_init(){
add_rewrite_rule(
'^([^/]+)/([0-9]+)/?$',
'index.php?post_type=artikelen&p=$matches[2]',
'top'
);
}
which は に変換されます。
^
文字列の先頭(つまり、先頭に他には何もありません)([^/]+)
:/
ではない少なくとも1文字/
:スラッシュ([0-9]+)
:少なくとも一つの数字/?
:ゼロまたは1(末尾)のスラッシュ$
:文字列の終わり