人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WordPressのpuginについて教えてください。

社内向けの掲示用にWordPressのFeedWordpressというプラグインを使って
他のRSSを定期的に取り込んでいます。

そこで、題名に取り込み元の識別するための文字列を付けたいとtitleを加工しています。

例:日経新聞のRSSだと題名の接頭辞に[日経]とつける。

これをするのに、feedwordpress_item.phpのget_title を加工して付けるようにしてみました。

これで手動でRSSを取り込む時は問題無く動作しましたが

cronを使って、http://www.hogehoge.com?update_feedwordpress=1を実行させると
取り込まれずRSSから取り込んだままの題名が表示されます。

cronから取り込んだ場合のget_titleはどこで行なっているのでしょうか。



(xmlをパースしたときにwordpressにpostされない値で判定をしたいので、post_insert(update)する前にtitleを加工したいのです。)

もう5日もにらめっこしてて少々つかれてしまいました。

●質問者: pinkymonk
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● holoholobird
●100ポイント

正常ではちゃんと動くのにcronを通すと動かなくなるのですよね。
cronとphpのトラブルで一番多い原因の一つに、カレントディレクトリへの移動ができていないことが挙げられます。
http://www.es-works.com/setup_cron.html
上記のURLを参考にして、cronの実行時に、まずカレントディレクトリに移動してからphpを実行するように書き換えてみてください。


pinkymonkさんのコメント
ありがとうございます。 ただ、cronの実行はURLであること。また、実行できているがtitleの取得がおかしいので ご回答いただいたcron側の問題というよりは、wordpressの仕組み側の問題と思っています。

2 ● SPANIEL
●100ポイント

cron とおっしゃってるのは、いわゆる unix の crontab で登録・参照する cron のことでしょうか?
URL を実行というのがよく分かりません。
curl や wget コマンドを使っているのだと想定します。

ブラウザでURLを打ち込む場合と、curl コマンドを実行する場合の違いで思いつくのは最後の/を補完するかどうかです。
以下のように?の前に/を補ったURLで試してみてはいかがでしょうか。

http://www.hogehoge.com/?update_feedwordpress=1


もうひとつ思いつくのはエージェントの違いです。
どのように構築されているかが分からないので想像になりますがエージェントを判定してリダイレクトしたりするような設定になっていないでしょうか?


pinkymonkさんのコメント
ありがとうございます。おそらくエージェントの違いです。 ここがどう違うか有識者に教えて頂ければと思っておりましたが、再度設計を再検討した結果違う方法で取得することで実現できました。ご確認頂きありがとうございます。 どうもエージェントの違いでwordpressのtitleにHTMLタグを無視するような動きをしているようです。(憶測ですが。。)

SPANIELさんのコメント
直接お力にはなれなかったようですが、問題が解決して良かったですね。

3 ● だわかき
●100ポイント

cronでPHPスクリプトを実行するのに、CGIモードで実行していませんか。
文字列を置換するための関数が、CGIモードでは禁止されているかもしれません。
確認してみて下さい。
たとえば、文字列を置換するだけのPHPスクリプトを作って、cronで実行してみてください。

また、feedwordpress_item.phpの改造箇所にデバッグポイントを仕掛けてみて下さい。
たとえば、get_titleで取得した直後のタイトルをテキストファイルに書き出し、置換後のタイトルを別のテキストファイルに書き出すようにしてみて下さい。手動でURLを呼び出すときと、cronで実行しているときのテキストファイルの結果が違うようだったら、CGIモードで正常に動かない関数を利用している可能性大です。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ