Wordpress Webサイトに未公開の投稿がいくつかあり、通常の投稿スラッグ(site.com/post-here
)を使用して、通常のユーザー(ログインしていない)がアクセスできるようにしています。私はそれがベストプラクティスではないかもしれないことを理解していますが、私の特別な目的のために、これを行う必要があります。
functions.php
ファイルに次のコードスニペットを追加しようとしました。
function enable_view_drafts() {
$role = get_role( 'subscriber' );
$role->add_cap( 'read_private_posts' );
$role->add_cap( 'edit_posts' );
}
add_action( 'after_setup_theme', 'enable_view_drafts');
のinit
代わりにフックも試しましたafter_setup_theme
。運がありません。
私の理解では、ロールへの変更はデータベースに保存されるので、一度だけ行う必要があります。そのためafter_setup_theme
、フックを使用して関数を呼び出しています。
しかし、通常のユーザーとしてページにアクセスしようとすると、投稿コンテンツを表示する代わりに404ページが表示されます。プレビューURL(site.com/?p=212&preview=true
)の読み込みも試みましたが、どちらも機能しませんでした。
これらは私の推測です:
- 通常のユーザーは
caps
下書きの投稿を読むのに十分ではありません。 - フロントエンドで下書きの投稿をテストおよび表示することは、ユーザー(管理者を含む)にはできません。
私がやろうとしていることを達成するために、どのような変更を加える必要がありますか?それが不可能な場合、どのような代替ソリューションを提案しますか?
注:プラグインベースのソリューションは探していません。