質問: wp_get_post_terms( $post->ID, 'movies_category' )[0]->slug; // return "/movies/" . $term . "/" . $post->post_name . "/"; } }, 10, 4 ); ``` ### 利用プラグイン * カスタム投稿と分類については Custom Post Type UI を使っています。 * カスタム投稿のパーマリンク制御に Custom Post Type Permalinks を使っていましたが、今回の問題発生したタイミングで停止させました。 add_filterが悪いのか、それとも中身なのか、別の箇所なのか、問題の切り分けがうまくできず、大変苦戦しております。 ご教示いただけると幸いです。。
回答: `add_filter` で登録する関数では、必ず第一引数と同じ型を`return`する必要があります。参考にされているサイトにも記載されている問題のコードでは、投稿タイプが`movies`以外の場合に何も`return`していないため、`add_filter`で登録する関数としては不適切です。最低限 ``` add_filter( 'post_type_link', function( $permalink, $post, $leavename ) { if ( $post->post_type == 'movies' ) { $term = wp_get_post_terms( $post->ID, 'movies_category' )[0]->slug; return "/movies/" . $term . "/" . $post->post_name . "/"; } return $permalink; }, 10, 3 ); ``` のようになっている必要があります。 > > ただ、上記コードの中身をコメントアウトして、add_filterだけ残した時もパーマリンクが表示されないこともわかりました。(この問題の切り分けと対処法が合っているのでしょうか...) > > > `add_filter`で登録した関数で何も返していないため、パーマリンクは表示されません。