WordPressのURLを書き換えようとしています...
具体的には、現在このように機能するカスタム投稿タイプがあります。
http://mydomain.com/videos/post-title/
しかし、私はそれを次の場所に配置したいと思います。
http://mydomain.com/videos/author-name/post-title/
これを達成する方法はありますか?
jhonの カスタム投稿パーマリンク プラグインを使うのは簡単です。
/%post_type%/%author%/%postname%/
プラグインなしで、あなた自身のコードでこれを行うことができます。
この形式のURLを受け入れるには、投稿タイプを登録するときに書き換えスラグを設定すれば十分です。
add_action( 'init', 'wpse16427_init' );
function wpse16427_init()
{
register_post_type( 'wpse16427', array(
'label' => 'WPSE 16427',
'public' => true,
'rewrite' => array(
'slug' => 'video/%author%',
),
) );
}
これはまたvideo/[authorname]
に著者アーカイブを生成します。
新しいURLを生成するには、%author%
部分を自分で置き換える必要があります。get_post_permalink()
はこれを行いません。そのため、出力をフィルタリングして自分で置き換えます。
add_filter( 'post_type_link', 'wpse16427_post_type_link', 10, 4 );
function wpse16427_post_type_link( $post_link, $post, $leavename, $sample )
{
if ( 'wpse16427' == $post->post_type ) {
$authordata = get_userdata( $post->post_author );
$author = $authordata->user_nicename;
$post_link = str_replace( '%author%', $author, $post_link );
}
return $post_link;
}
管理者パネルの設定のパーマリンクセクションに行き、以下のようにcustom structure
を設定します。
/%category%/%author%/%postname%/
NOTE
これはvideos
がカテゴリーであると仮定します
その他のオプションについてはこちら をチェックしてください。
wordpressをサブディレクトリ(ビデオ)にインストールした場合は、次の構造を使用してください。
/%author%/%postname%/