忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

WordPressプラグイン作成 カスタム投稿タイプのadd_meta_box
add_meta_boxを使うには投稿タイプの指定が必要。

投稿記事→post
固定ページ→page
カスタム投稿タイプ→スラッグ名

ということらしいですが、全部のカスタム投稿タイプに入れたい場合、スラッグ名をひとつずつ書くと後々面倒。
そんなわけで、カスタム投稿タイプの一覧を取得→ループで全部にadd_meta_box、という処理がこちらです↓


//すべてのカスタム投稿タイプでも有効にする
foreach( get_post_types( array( 'public' => true, '_builtin' => false ), 'objects' ) as $key => $val ) {
add_meta_box( 'force_future_to_publish', $box_title, 'force_future_to_publish_metabox', $val->slug, 'side' );
}


array_keysでスラッグ名だけの配列にしてループさせた方が、シンプルでカスタマイズしやすいのかな、と思います。

■ソースコピペ元
http://kijtra.com/article/wordpress-future-post-publish
SyntaxHighlighter 忍者ブログでソースコード表示
ソースコードを見やすく表示するために、SyntaxHighlighterを導入しました。
本家からダウンロード→アップロード、という手順が、忍者ブログだと結構手間だったので一度あきらめたのですが、便利なツールを発見したので再挑戦。

Syntax Highlighter Scripts Generator
http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator

表示したいスクリプトの種類を選ぶだけで、コピペ用のソースが出力されます。これを、テンプレートファイルの</head>タグ直前に貼ればOK
テーマ(CSSファイル)もいくつか選べます。

ちょっと表示に時間がかかるのが難点(外部なんで当たり前ですが)
環境的にできない場合とか、取り急ぎやりたい場合とか、(わたしのように)めんどくさがりな方にはとてもおすすめです。


■Blogger に Syntax Highlighter を導入する
http://naichilab.blogspot.jp/2013/04/blogger-syntax-highlighter.html
記事はBlogger用ですが、忍者ブログもほぼ一緒。

■HTMLエスケープツール
http://webtools.dounokouno.com/htmlescape/index.html
<や>を参照文字にエスケープしてくれるツール。preタグ・codeタグ付加とタブ削除等も有。
WordPressプラグイン作成 「保存しました」メッセージを表示
記事を投稿した時や設定を保存した時に表示される「保存しました」メッセージを、add_menu_pageで作った自作ページで出力する方法。
関数があるのかなと思ったのですが見当たらず。
結局、クラスを当てて単純にprintしました。
print('<div class="updated" id="message"><p>設定を保存しました。</p></div>');

↑のidとclassは、ワードプレスでデフォルトで表示されるメッセージのとおなじもの。
見た目の装飾だけなら、自作してもいいのかな。
PHP substrで文字化け→半角全角混在が原因!
substrでバイト単位での文字列の切り取り。
ときどき文字化けが起こるけれど、末尾だけなので文字コードの問題ではなさそう。
いろいろ試した結果、半角と全角が混在している文章のときに発生するようで、バイト指定で切り取られたことで末尾の文字が中途半端に出力されていたようです。

【方法1】
mb_substr を使う。

こっちはマルチバイト対応なので、半角全角が混在していても問題なく取れますが、バイト指定ではなく文字数指定なので今回はNG。

【方法2】
mb_strimwidth を使う。

指定した幅で文字列を丸める。幅=バイト数のようです。文字コードも指定できるので、今回はこれで解決できました!
第4引数の「丸めた後にその文字列の最後に追加される文字列」を指定すると、これも含めたバイト数として計算されるようなので注意。

mb_strimwidth
http://www.php.net/manual/ja/function.mb-strimwidth.php
WordPressプラグイン wp_nonce_fieldってなに?
他のサイトから来ていないかどうかの保護用?みたいなことらしいけど、いまいちよくわからない。
意味合い的には、CSRF対策=リクエスト強要、ということらしいです。外部攻撃対策的な。
管理者ページからのリクエストかどうかのチェック方法は、
wp_verify_nonce
ではなく
check_admin_referer
を使う方が良いそうです。
注意点は、引数はユニークであること!"プラグイン名" + "アクション名" + オブジェクト名、と指定するのが正しいらしい。

■WordPress での CSRF 対策
http://hetarena.com/archives/2039
nonceってなに?を詳しく解説。ワードプレスの場合は有効期間があるらしい。

■【WordPressの自作プラグインの設定画面に入力フォームを設置した場合に気をつける基本的なこと】そしてWordCampのあるセッションでプラグイン開発について改めて考えさせられました
http://www.imamura.biz/blog/cms/wordpress/6553
具体的な使い方。サンプルソース有。

■WordPressプラグインのコーディングでありがちな10の間違いと設計時に考慮すべきこと
http://tokkono.cute.coocan.jp/blog/slow/index.php/wordpress/most-common-mistakes-in-wordpress-plugins-coding/
nonceのこと以外にもいろいろ書かれていて参考になりました。
- 1 - 2 - 3 - 4
prev  top next
BACKGROUND / tudu*uzu
TEMPLATE / Lenny
忍者ブログ [PR]