wordpress標準だとメディアファイルから選ぶという簡単なことができないのでプラグインで解決。
bbpressのメールアドレス任意やログイン機能の設定方法
専用プラグインを作成する方法
WordPressの「plugins」フォルダの中に「empty-anonymous-bbpress」フォルダを作り、その中に作成した「empty-anonymous-bbpress.php」ファイルを入れてください。
empty-anonymous-bbpress.php
<?php /* Plugin Name: empty-anonymous-bbpress Description: bbpressのコメント投稿の名前とメールアドレスを任意にするプラグイン Version: 1.0 */ add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) ); class WPSE_Empty_Anonymous_Replies { static protected $name = 'nobody'; static protected $email = 'nobody@example.com'; static public function init() { add_filter( 'bbp_filter_anonymous_post_data', array( __CLASS__, 'bbp_filter_anonymous_post_data' ), 11, 2 ); add_filter( 'bbp_pre_anonymous_post_author_name', array( __CLASS__, 'bbp_pre_anonymous_post_author_name' ) ); add_filter( 'bbp_pre_anonymous_post_author_email', array( __CLASS__, 'bbp_pre_anonymous_post_author_email' ) ); } static public function bbp_filter_anonymous_post_data( $retval, $r ) { if( self::$name === $r['bbp_anonymous_name'] && self::$email === $r['bbp_anonymous_email'] ) { // reset the input to skip writing cookies $retval = array(); // trick to activate the IP flood check $retval['bbp_anonymous_flood_check'] = '1'; } return $retval; } static public function bbp_pre_anonymous_post_author_name( $name ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $name ) ) $name = self::$name; return $name; } static public function bbp_pre_anonymous_post_author_email( $email ) { remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) ); if( empty( $email ) ) $email = self::$email; return $email; } }
このプラグインでは必須条件を解除するだけで、「名前」「メールアドレス」欄の表示は消えません。そのため、入力項目自体を非表示にしたい方は、直接phpから「名前」欄などを削除するか、cssで非表示にして対応してください。
次のコードをstyle.cssに記述します。
/* メールアドレスを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(3) { display: none; } /* ウェブサイトを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(4) { display: none; }
C++ ファイル名だけの__FILE__ である __FILENAME__ を作る
__FILE__はフルパスなので使いにくい時がある
#define __FILENAME__ (strrchr(__FILE__, '¥¥') ? strrchr(__FILE__, '¥¥') + 1 : __FILE__)
log4netのログのレベルについて
ログ・レベルの順位は、次のようになっています。
ALL < DEBUG < INFO < WARN < ERROR < FATAL
つまり、
log4netでログが出ない時の確認手順
DLLのプロジェクトのせいか、app.configに指定する方法だと設定が読み込まれなくてダメだった。外部xmlファイルにしたらできた。
- loggerのNameプロパティを見て、想定通りの名称文字列が設定されているかどうかを確認する。この内容と、ログ設定の内容(name value="..."の"..."の部分)が一致していないと、そもそもログ設定がきちんと読み込まれない。
- 設定ファイルを読み込んだあとで、loggerの「IsDebugEnabled」「IsErrorEnabled」といったBoolean型プロパティを確認し、設定ファイルで指定したレベル以上のプロパティがすべてTrueになっているかどうか。たとえばErrorレベル以上でログを出すように設定しているのに、ErrorやFatalがFalseになっている場合、ログ設定がきちんと読めていない可能性が高い。
- ログ設定を読み終えた後で、「logger.Logger.Repository.Configured」を確認する。ここがFalseの場合、設定ファイルがきちんと読めていない。
- 設定ファイルが読めていないといけないのに、上に書いた内容が全部ダメの場合、設定ファイル読み込み処理(XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile)))をコマンドウィンドウで実行してみる。そうすると、設定ファイル内の不備などがエラーメッセージとしてズラズラ出てくるので、それで設定ファイル中の問題箇所を特定する。
ExcelVBAでクリップボード扱う PutInClipboard がうまくいかないことがある
色々やってみたけど原因不明。
クリップボードを扱うアプリ入れてたりするとなりやすいかも?
ダメだったときは素直に諦めたほうが良さそう。
.NET Frame Work 4以降ではSystem.Web.HttpUtility.UrlEncodeは使えないのでUri.EscapeDataStringを使う
URLのエンコードはUri.EscapeDataString()を使えばよし!
chromeでajaxリクエストPOSTデータを見る方法
- 「Ctrl + Shift + I」(MacはControl + Option + I)でデベロッパーツールを開く。
- Networkタブを開く。
- タブの下、画面上部にある「All」をクリックする。
- その状態でPOSTを実行する(リロード)。
- 該当のファイル名が一覧に現れるので、クリックする。
- 結果一覧の「Headers」タブの下の方にある「Form Data」が、送信されたデータ。view sourceをクリックすれば、生データも見られる。