自分の役割がカスタム役割の場合は、すべてのユーザーのプロフィールページを作成しようとしています。
私は自分のサイトにカスタムロールを作成しました。これが、メンバーがサイトに登録したときにメンバーに割り当てられるデフォルトの役割です。
contributors.php
とauthors.php
があります。私がwww.mysite.com/authors
itに行くと、役割を考慮せずにすべてのユーザーをリストします。それから私はこのURLを書き直すためにAuthor Base using generate_rewrite_rules
を使いました。
今私がwww.mysite.com/mycustomrole
に行けばそれはすべてのユーザーをリストします。それは私にとって大丈夫です。
各メンバーのプロフィールページを作成する次のステップ。だから私はauthor.php
を作成しました
以下のユーザーがいると
私はこのようなプロフィールページを見ることができます。
www.mysite.com/authors/user1
に行けばそれは彼のプロフィールを示しています。www.mysite.com/authors/user2
に行っても、彼のプロフィールは表示されません。www.mysite.com/authors/user3
に行けばそれは彼のプロフィールを示しています。www.mysite.com/authors/user4
に行っても、彼のプロフィールは表示されません。そのため、custom created role
ユーザーではなく、administrator
ロールユーザー専用の個人プロファイルページを取得しています。何故ですか。
今のところ私の要件は次のとおりです。
www.mysite.com/customrole/user1
どのように私はどのようなプラグインを使用してこれを行うことができますか?
あなたはあなたがカスタム投稿タイプを使っていることに気付きました。
それが問題であるかどうかを確認するには、
もしそうなら、おそらくあなたの投稿者ページはshow custom postsを表示するように設定されていません。
これを修正するには、funtions.phpファイルで次のようなものを使用するか、または作成者ページのクエリを変更します。
function my_show_special_posts_on_author( WP_Query $query ) {
# Make sure you are only altering the query on the author page
if ( $query->is_author() && $query->is_main_query() && !is_admin() ) {
# Grab the current post types to be shown
$types_to_show = $query->get('post_type');
$types_to_add = array( 'custom_post_type_1', 'custom_post_type_2' );
if ( is_array($types_to_show) ) {
# Already showing an array of types, add yours if not already included
foreach ( $types_to_add as $post_type ) {
if ( !in_array($post_type, $types_to_show) ) {
$types_to_show[] = $post_type;
}
}
} else if ( empty($types_to_show) ) {
# Strange. Not showing any types. Add yours anywise.
$types_to_show = $types_to_add;
} else {
# A single one as a string, add it to your types to add then overwrite types to show
$types_to_add[] = $types_to_show;
$types_to_show = $types_to_add;
}
$query->set('post_type', $types_to_show);
}
}
add_action('pre_get_posts', 'my_show_special_posts_on_author');
必ず$types_to_add = array( ... );
の行を調整してください
カスタム投稿タイプを強制的に表示させる必要があります。