WP Basic認証をかけている場合の「予約投稿」

2008/05/20 火曜日 2:01 投稿者 zon

注意

この対処法は、古いバーションでしか通用しなくなっています。 Ver.2.7 以上を使っている場合は下記を参考した方がいいかも。
WP Basic認証をかけている場合の「予約投稿」 Ver.2.7以降?

ここから本文

以前、予約投稿で苦労したのですが、別の問題で予約投稿ができない人がいるみたいなので、ちょっと調べてみました。1ヶ月近く前の記事なので、もう解決してるかもしれませんが。。

他サイトとの違いは、Basic認証があることなので、試しにBasic認証をはずしてやってみたところ、「予約投稿」機能が動きました!

Basic認証下で、WordPressの「予約投稿」機能が動かない

Basic認証が問題になっているのはハッキリしているので、Basic認証を通るようにしてあげればいいようです。

ちなみに、修正なしでBasic認証+未来投稿をすると HTTP/1.1 401 Authorization Required が返ってきてました。Basic認証が問題になっているのは間違いないようです。

今回検証したのは Ver2.5.1 ですが、Ver2.3.3 でも同様に修正すれば解決するのではないかと思います。

修正箇所は /wp-includes/cron.php の 101行目(function spawn_cron() 内) の fputs() のパラメータです。

fputs( $argyle,
      "GET {$parts['path']}?check=" . wp_hash('187425') . " HTTP/1.0\r\n"
    . "Host: {$_SERVER['HTTP_HOST']}\r\n\r\n"
);

上の部分を以下のように修正したら予約投稿できました。

fputs( $argyle,
      "GET {$parts['path']}?check=" . wp_hash('187425') . " HTTP/1.0\r\n"
    . "Host: {$_SERVER['HTTP_HOST']}\r\n"
    . "Authorization: Basic ".base64_encode('user:password')."\r\n\r\n"
);

Basic認証用のヘッダを送ってあげればいいみたいです。4行目の user:password は、実際にBasic認証で使用しているユーザ名とパスワードを入れてください。

以下のページが参考になったので紹介しておきます。

PHPのちょっとしたTIPS

トラックバック一覧

  1. Basic認証下でも「予約投稿」できるようになりました…

    Basic認証下で、WordPressの「予約投稿」機能が動かない 竏鈀 仕事中!
    http://www.hajime3.com/index.php?ID=233
     ↑
    この件ですが、下の記事のとおりにやったら、Basic認証下でも「予約投稿」できるよ…

    トラックバック:仕事中! | 2008/05/20 火曜日 14:49

  2. […] WP Basic認証をかけている場合の「予約投稿」2008/05/20 火曜日 2:01 投稿者 zon […]

    ピンバック:使えるブログを作ろう» Blog Archive » basic認証の中においたwordpressの留意事項 | 2009/04/23 木曜日 10:41

コメント一覧

  1. Basic認証下でも「予約投稿」できるようになりました!
    ありがとうございました。

    コメント:はじめ | 2008/05/20 火曜日 15:29

RSS feed for comments on this post.

コメント投稿

Sorry, the comment form is closed at this time.