web-dev-qa-db-ja.com

カスタム投稿タイプのURL構造に%author%を追加しますか?

WordPressのURLを書き換えようとしています...

具体的には、現在このように機能するカスタム投稿タイプがあります。

http://mydomain.com/videos/post-title/

しかし、私はそれを次の場所に配置したいと思います。

http://mydomain.com/videos/author-name/post-title/

これを達成する方法はありますか?

3
Thomas

jhonの カスタム投稿パーマリンク プラグインを使うのは簡単です。

/%post_type%/%author%/%postname%/
5
Bainternet

プラグインなしで、あなた自身のコードでこれを行うことができます。

この形式の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;
}
7
Jan Fabry

管理者パネルの設定のパーマリンクセクションに行き、以下のようにcustom structureを設定します。

/%category%/%author%/%postname%/

NOTE

これはvideosがカテゴリーであると仮定します

その他のオプションについてはこちら をチェックしてください。

0
Mild Fuzz

wordpressをサブディレクトリ(ビデオ)にインストールした場合は、次の構造を使用してください。

/%author%/%postname%/

0
Giri