Word Press

WordPress4.7系のREST-API脆弱性による一部誤解について

長くなりますが、ブログ投稿が妥当そうですので。
世界的シェアをもつWordPressの今回のニュースは、国内の中小零細・大企業・官公庁サイトで何万件もの改ざん攻撃の指摘を受けています。
大きく影響を受けるのはREST APIが標準搭載されたver4.7.0/ver4.7.1です。
【ITmedia】
ITmediaさんを特定するわけではないのですが、社会的な影響度が大きいからニュースになったのでしょうが、タイトル見ると『WordPress≒セキュリティ弱い』と誤解されそうです。
『WordPress≒逆にセキュリティ対策が早い。但しシェアが大きい為社会影響が大きい。』と思ってもらった方がいいなぁ。
初版4.7.0をリリース後48hour以内に既に脆弱性をつかれ、4.7.1で対処しさらに4.7.2というところでしょうか。(リリースノート確認してません)

続きを読む

さくらレンタルサーバのWordPressでユーザ情報更新時にInternalServerError(500)

WordPressのマルチサイトでユーザー追加時に500エラー』まさにこの症状がでたのですが、メール周りでもなさそうだったので、以下のように継続調査しました。

タイトルのように、『Internal Server Error 500』が表示されたときは、以下箇所を疑ってみます。

.htaccess の書き方の間違い

htaccess内のBasic認証やAccess denyなどの設定、Permanentなどの記述方法ミス、不要な全角スペースがある、などを疑います。

PHP のプログラムミス

プログラム記載ミスや処理の記述がないか疑います。

php.ini の記述ミス

さくらレンタルサーバの場合、php.ini はコントロールパネルから提供されています。この中に記載ミスがないか調査します。

それでも原因不明な時は・・・

コントロールパネルから提供されているエラーログを確認します。

今回、私の環境でエラーログには、『malformed header from script. Bad header=/home/hoge/dead.letter… S:』が表示されていました。

それと合わせて、php.iniのエラー表示もありphp.iniを見てみました。結果、原因はphp.iniの記載ミスでした。

 

BuddyPressをカスタマイズ

BuddyPressプロフィール一覧上部に、カスタム文章を表示する。さらに、表示・編集で切り替える。


add_action('bp_before_profile_field_content', 'account_details_display_howto' ); // 登録画面文章表示
add_action('bp_before_account_details_fields', 'account_details_display_howto' ); // 登録画面文章表示
// 新規アカウント登録時のタイトル設定
function zam_before_register_page() {
echo "<h2>" . get_the_title(6) . "</h2>";
return "";
}

登録メンバー一覧のサムネイルや、掲載情報を修正する場合は

/home/ippin-dou/www/test/wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/members-loop.php を直接修正するか、add_action(bp_directory_members_item, functionxxxx) を追加すればよい。

プロフィールの一覧上部に任意の文章を追記する

Buddypressでプロフィール表示画面の、一覧表となる上部にBuddyPressのプロフィール拡張プラグイン『Buddypress xProfile Rich Text Field』で追加・追記した文章を表示させます。
以下のコードでは、プロフィール項目A,B,Cの項目を表示させる処理です。add_action() でアクションフックに登録し、プロフィール情報をecho させるのみです。

$count_loop = FALSE; // 同一画面で複数回CallBackされたカウント
add_action( 'bp_before_profile_field_content', 'bp_before_profile_func');
function bp_before_profile_func(){
    global $count_loop;
    global $bp;
    
    // 初回のみ表示させる
    if($count_loop) return ;
    else $count_loop = TRUE;
    // echo bp_displayed_user_id();
    $profile_title="タイトル";
    $corp_name = xprofile_get_field_data('[プロフィール項目A]', bp_displayed_user_id());  
    $corp_picture = xprofile_get_field_data('プロフィール項目B', bp_displayed_user_id());  
    $catchecopy = xprofile_get_field_data('プロフィール項目C', bp_displayed_user_id());  
    if($catchecopy != "")  $profile_title = $catchecopy;

    $profile_descript= xprofile_get_field_data('プロフィール項目D' ,bp_get_member_user_id());
    $profile_text = nl2br($profile_descript);
    echo <<<_PROFILE_INF_
	<h2>{$corp_name}</h2>
	{$corp_picture}
        <strong id="bf_profile_title">{$profile_title}</strong>
        <p id="bf_profile_desc">{$profile_text}</p>
_PROFILE_INF_;
}

howto-user-metaslider

WordPress Plugin のMetaSliderはスライド画像を容易に設定できるプラグインです。複数の画像スライドショーを作成、管理できます。残念ながら動画スライドショーはできません。「MasterSlider」プラグインであれば、Youtubeなどの動画コンテンツの埋め込んだスライダーも作成できます。

MetaSliderの場合、表示設定時はPHPに直接埋め込んでもできますし、記事・固定ページへショートコードで入れ込むことも可能です。

続きを読む

buddypress のユーザ登録承認・有効化する際のメール本文をカスタマイズする

wordpressのSNS向けプラグインであるbuddypressを運用していて、新たにユーザ登録された際、ユーザに自動的にActivateするためのメールが届くのですが、そのやり方を調査したので、以下メモしておきます。

参考にさせてもらったのは以下3つのサイト。

3つめの海外サイトが一番参考になりました。メール本文を変更したい場合は『bp_core_signup_send_validation_email_message』にfilterをかけます。


add_filter( 'bp_core_signup_send_validation_email_message', 'custom_buddypress_activation_message', 10, 3 );
function custom_buddypress_activation_message( $message, $user_id, $activate_url ) {
$user = get_userdata( $user_id );
$post = get_post([有効化]);
return "$user->user_login
$post->post_content
$activate_url
";
}

$post = get_post([有効化]); という部分は、buddypressの「設定」-「固定」にある、有効化させた際の固定ページのidを指定します。有効化した際の固定ページに記載した文章を入れ、これをメール本文として送付するよう修正しています。

 

wordpress「new-user-approve」プラグインの日本語化

wordpress のプラグイン new-user-approve (ver1.7.3)の日本語化をしましたのでpo/moファイルをこちらに置いておきます。

本プラグインは、新しいユーザ登録時に承認と管理機能をもつプラグインです。

翻訳ファイル:download1.0 - WordPressユーザ登録時の承認プラグインの日本語化ファイルです。

WordBench香川 at 男木島(猫島)

先日1年ぶりに男木島へ行きました。WordBenchというWordPressユーザの集まりの企画でした。全11名の参加でした。

午前中は島探索と猫の集落訪問。午後はWordBenchの真面目な勉強とお話しをしました。

WordBench SNS @nukaga さんの振り返りレポート

post branchで作成したブランチ記事を予約投稿する

以前紹介したWordPressのプラグインの記事『wordpress post branchプラグインを編集する』についでのネタ記事です。

post branchでブランチ記事を作成した場合、その記事が未来日時の公開設定にすると1つの記事の場合は自動的に『予約済み』→『公開済み』となるのですが、複数記事を同じように未来日時の公開設定とした場合、2つ目以降の記事が『予約済み』→『予約投稿失敗』となります。

今回は、複数のブランチ記事を予約投稿したした場合でも自動的に『予約済み』→『公開済み』にさせる編集をします。

続きを読む