私は、偽のページと、より多くのタイプ(カスタムポストタイプ用)、高度なカスタムフィールド、その他の分類などのプラグインを使用してWordPressサイトのシステムを作成しました。サイトには、バンドとリリースのポストタイプがあります。カスタムポストタイプのカスタムパーマリンク
フロントエンドではすべてがうまく動作し、バンドについて読む場合は、メニューをクリックして/band/[bandname]
になります。彼がリリースについて読むことを望むなら、彼は/band/[bandname]/releases/[releasename]
で終わる。
私が言ったように、すべてがフロントエンドでうまくいきます。しかし、私がバックエンドでリリースを作成すると、ポストタイプのリリースのためにパーマリンクに/band/[bandname]
の部分を追加するのは苦労しています。私は/band/%band%/releases/
で試しましたが、バンド名を取得する場所がわからないので、%band%は文字通りに書き込まれます。何か案は?
このコードを使用しようとしました。 Band
は、リリース送信フォームの投稿オブジェクト入力です。
add_filter('post_type_link', 'custom_permalinks', 10, 3);
function custom_permalinks($permalink, $post, $leavename)
{
$post_id = get_post_meta($_POST['band'], 'bands', true);
if($post->post_type != 'utgivelse' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$var1 = get_post_meta($post_id, 'bands', true);
$var1 = sanitize_title($var1);
$permalink = str_replace('%band%', $var1, $permalink);
return $permalink;
}
私は私の
releases
タイプに次のパーマリンクルールを追加しました。しかし、サブカテゴリが増えると、エディタにリンクしようとするとちょっと混乱します。彼らはスタイルはパーマリンクを理解していない。だから私はリリースにリンクするとき、それはバンド名を知らない。 – janlindsoすべてのページの読み込み時にルールをフラッシュするのは悪い考えです。 –
だから私はそれをコメントしました。そのフィルタは、新しいルールが追加されたときにのみ実行する必要があります。 – Alberto