ベーシック認証によるアクセス制限
.htaccessの中身の書き方
特定のファイルに制限
<Files ファイル名.php> AuthType Basic AuthName "Input your ID and Password." AuthUserFile /任意の場所/.htpasswd require valid-user </Files>
その.htaccessがあるフォルダごと制限
AuthType Basic AuthName "Input your ID and Password." AuthUserFile /任意の場所/.htpasswd require valid-user
.htpasswdの書き方
user1:passxxxxxxxxxxxxxxx user2:passxxxxxxxxxxxxxxx
という感じで改行とコロンで区切って書く。変換はどうにかうまいことやる
pre_get_postsで気をつけること
ホーム画面に吐き出される記事一覧を、あるカテゴリーの記事に絞りたかった。
こういう時のための「pre_get_posts」だと思ったので、
嬉々として利用。
悪い例
functions.php
<?php // homeの記事一覧をカテゴリID「2」の記事のみに限定 function change_posts_category($query) { if ( is_admin() ){ return; } if( $query->is_home() ){ $query->set( 'cat','2' ); return; } } add_action( 'pre_get_posts', 'change_posts_category' ); ?>
珍事発生
いざサイトを見てみたところ、
記事のカテゴリによる絞り込みはできていたが
ナビメニューが消えた。
忽然と、消えてしまった。
どのページを見ても、
<nav> </nav>
という感じで、メニューの中身がごっそり 無い。
原因
pre_get_posts を使用する際に、
「管理画面とメインクエリに干渉しないようにする」
という回避コードを書く必要があるのだが、
これを
「今回はトップページのループをいじるわけだから、(?)
メインクエリへの干渉を避ける必要はないだろ〜」
と、勝手に回避コードを省略してしまったのが敗因。
メインクエリのなんたるかを、まったくわかってなかった。
メインクエリがナビメニューにも関わっているなんて、
おら、知らなかっただ・・・・。
正解
<?php // homeの記事一覧をカテゴリID「2」の記事のみに限定 function change_posts_category($query) { if ( is_admin() || ! $query->is_main_query() ){ return; } if( $query->is_home() ){ $query->set( 'cat','2' ); return; } } add_action( 'pre_get_posts', 'change_posts_category' ); ?>
WordPressの投稿画面(ビジュアルエディタ)をカスタマイズ
ビジュアルエディタ(TinyMCE)の、
太字やら色々なボタンをカスタマイズしたい。
まずは不要なものを消しましょう
functions.php
<?php //ビジュアルエディタいらないボタンを削除 //一段目 function remove_tinymce_buttons($buttons){ $remove = array( 'blockquote', //引用 'strikethrough', //打ち消し線 'wp_adv' //ツールバー切り替え(二段目以下を展開) ); return array_diff($buttons, $remove); } add_filter('mce_buttons','remove_tinymce_buttons'); //二段目 function remove_tinymce_buttons_2($buttons){ $remove = array( 'strikethrough', // 打ち消し 'hr', // 横ライン 'forecolor', // テキスト色 'pastetext', // テキストとしてペースト 'removeformat', // 書式設定をクリア 'charmap', // 特殊文字 'outdent', // インデントを減らす 'indent', // インデントを増やす 'undo', // 取り消し 'redo', // やり直し 'wp_help', // キーボードショートカット 'alignjustify', //両端揃え 'underline', //下線 'styleselect' //スタイルセレクタ(※後述) ); return array_diff($buttons, $remove); } add_filter('mce_buttons_2','remove_tinymce_buttons_2'); ?>
任意の機能を追加
<?php // ビジュアルエディタ2段目にフォントサイズセレクタ追加 function add_mce_buttons( $buttons ) { $add_buttons = array( 'fontsizeselect' ); return array_merge( $buttons, $add_buttons ); } add_filter( 'mce_buttons_2', 'add_mce_buttons' ); ?>
フォーマット選択の中身を任意のものに変更
<?php add_filter( 'tiny_mce_before_init', 'custom_tiny_mce_formats' ); function custom_tiny_mce_formats( $settings ){ $settings[ 'block_formats' ] = '段落=p;見出し1=h2;見出し2=h3;見出し3=h4;'; return $settings; } ?>
なぜか二段目の「Styleselect」がどうしても消えてくれなかったので、力技
<?php //スタイルセレクタ消去 function wp_custom_admin_css() { echo '<style>div#mceu_14,button#mceu_14-open{display:none !important;}</style>'; } add_action( 'admin_head', 'wp_custom_admin_css', 100); ?>