制作備忘録

仕事でぶちあたった壁の備忘録です。Wordpressが多め。

PublishPress Permissions と functions.php でユーザーの権限を設定する

PublishPress Permissions プラグインの導入

ja.wordpress.org

  1. カスタム投稿がある場合は、Settings>Core タブでカスタム投稿及び、ターム類にチェックを入れる
  2. ユーザーを追加する
  3. 権限グループは後で消すので適当に
  4. ユーザー一覧で追加時に設定した権限を消す「このサイトでの権限なし」
  5. ユーザーの編集画面に入って、Custom User Permissionsのcustomize this user directly.をクリック
  6. Post Typeを選択、RoleはAuthor を指定する

 メディア、タームも指定する

設定参考

webone-sendai.co.jp

functionsで不要なメニューを非表示にする

/* ===============================
  管理メニューを非表示にする 管理者以外
================================*/
function remove_menu() {
	if ( !current_user_can('administrator') ) {
	//管理者以外は下記メニューを非表示
		remove_menu_page( 'edit.php?post_type=page' ); //固定
		remove_menu_page( 'edit-comments.php' );       //コメント
		remove_menu_page( 'themes.php' );              //外観
		remove_menu_page( 'plugins.php' );             //プラグイン
		remove_menu_page( 'users.php' );               //ユーザー
		remove_menu_page( 'tools.php' );               //ツール
        remove_menu_page( 'options-general.php' );     //設定
        remove_menu_page( 'wpseo_dashboard' ); // Yoast SEO
        remove_menu_page( 'wpcf7' ); // Contact Form 7
	}
}
add_action( 'admin_menu', 'remove_menu' );

今回はイベントプラグイン(XO Event Calendar)を導入していたので以下も追加
カスタム投稿としで動作していたので以下で消せた

remove_menu_page( 'edit.php?post_type=xo_event' ); // xo-event-calendar
記述参考

www.nxworld.net

MW WP Form のフォームの項目を動的に変更する

masizime.com
design-webnote.com

カスタム投稿のタイトルの場合

functions.php に入力
//===================================
// フォームの値を動的に変更する
//===================================
function add_select_item_koumoku( $children, $atts ) {
if ( $atts['name'] == 'koumoku' ) {
$arg = array(
'posts_per_page' => -1,
'post_type' => '[****]'
);
$cat_posts = get_posts( $arg );
foreach( $cat_posts as $cat_post ){
$children[$cat_post->post_title] = $cat_post->post_title;
}
}
return $children;
}
add_filter( 'mwform_choices_mw-wp-form-[id]', 'add_select_item_koumoku', 10, 2 );
管理画面
[mwform_select name="koumoku" id="koumoku" children=":選択してください" post_raw="true"]

最上の親ページの情報を取得

hirashimatakumi.com

  $parent_id = $post->ancestors[count($post->ancestors) - 1]; // 最上の親ページのIDを取得
  echo $parent_slug = get_post($parent_id)->post_name; // 最上の親ページのスラッグを取得して表示
  echo $parent_title = get_post($parent_id)->post_title; // 最上の親ページのタイトルを取得して表示
  echo get_permalink($parent_id); // 最上の親ページの URL を表示