WordPressで多階層カテゴリーに紐付けて投稿するとパンくずがバグる

■パンくずに使用したプラグイン
 ・Breadcrumb NavXT
 ・Yoast Breadcrumbs


■やりたいこと

 下記の通り紐付けて投稿をしたい。

 

 【紐付けカテゴリー】

    ■宇宙

     ■地球

      ■日本

      □アメリカ

      □ドイツ

    (■ = 紐付け対象カテゴリー、 □ = 紐付けないカテゴリー)

 

 【パンくず】

  Home > 宇宙 > 地球 > 日本

 

 【投稿内容】

  これは宇宙からみた日本です

■現象

 パンくずが下記のようになってしまう。

 Home > 宇宙 > 地球 > これは宇宙からみた日本です

 

 本当はこうしたい↓

 

 Home > 宇宙 > 地球 > 日本 > これは宇宙からみた日本です

 

■原因

 下記をおこなったことでゴミデータっぽいものが

 残っているような感じ。明確な原因分からず。

 ただ、ひとつ言えるのは、色々いじりすぎなほうが

 いいこと。自分が行ったのは主に下記のようなこと。

 

 ・カテゴリーを追加して削除を繰り返す

 ・カテゴリーの親を変えまくる

 ・ テスト投稿でカテゴリーを紐付ける → カテゴリーを削除

  → カテゴリーを復活 → テスト投稿を削除

 

 などのように色々テストしていた。


■対応策

 根本的な解決策ではないが、親カテゴリーを

 紐付けずに最下層けカテゴリーのみ

 紐付ける。つまり下記のように紐付ける。

 【紐付けカテゴリー】

    □宇宙

     □地球

      ■日本

      □アメリカ

      □ドイツ

    (■ = 紐付け対象カテゴリー、 □ = 紐付けないカテゴリー)

 

 「日本」は親カテゴリーを「地球」にし、地球は「宇宙」に

 なっているため、パンくずは想定通りに表示された。

Mac x XAMPP x WordPress x プラグイン・自動アップグレードがエラー

■環境
MacBook Air MC505J/A
XAMPP 1.7.3
WordPress 3.1.4-ja

■現象
プラグインやWPの自動アップグレード(自動アップデート)を
するとFTP接続情報が表示されたり、こんな感じのエラーが出る。

—————————-
failed to open stream: Permission denied in 〜〜〜 class-wp-filesystem-direct.php on line 202
ファイルをコピーできませんでした。
インストール失敗
—————————-

対応しても次々と色んなエラーが出てしまい、tmpフォルダに
パーミッションがないだの、接続情報 FTPを接続しろだの
キリがない。

■原因
FTP接続の設定になっていたりApacheの実行ユーザーが
nobodyになっていることなどが原因。

■対応策
ネット上を見ると、これもまたキリがないほど
たくさんの対応策が載っていて、環境によって
大きく異なるようだ。あらゆるフォルダの
パーミッションをchmod 777にしたり、
chown -R _www:_www とか試しまくったが
下記の方法2点のみで解決した。

1.wp-config.php に最下部に下記を記載する。
これがFTP接続情報を回避する方法となる。
 ——————————
define(‘FS_METHOD’,’direct’);
——————————

2./Applications/XAMPP/etc/httpd.conf の
user と group を自分のユーザー名に変える。
コピーできないとかパーミッションがなんとか
言われた場合の回避方法。

 ——————————
138 #User nobody
139 #Group nogroup
140 User 自分のユーザー名
141 Group 自分のグループ名
 ——————————

ちなみにユーザー名の一覧は /etc/password に記載してある。

■備考
色々やってどうしても解決しない場合は、苦肉の策として
XAMPP の代わりに MAMP を使えば
一発で動くとの情報あり。

■参考サイト
[WordPress3.0]テーマ、プラグインインストールでFTPの接続情報を求められる。
XAMPP環境でWordPressの自動アップデートを可能にする 

■英語圏の方用 for English
 If you get error “FTP connetion” or “permission denied” When you upgrade or install plugin, you should try these.

1. write below sentence in wp-config.php.
define(‘FS_METHOD’,’direct’);

2. change the user and group config in /etc/httpd.conf
#User nobody
#Group nogroup
User YourUserName
Group YourGroupName

cron使ってシェルからGETメソッドを実行する方法

シェルから指定の時刻に特定のURLにアクセスするcronジョブを作る時は
以下の方法が取れる。

方法1)シェルからGETメソッドのパラメータ・値を取得
    [シェル側]
     % /usr/local/bin/php test.php val=1
    [PHP側]
     echo $_SERVER[“argv”];

方法2)シェルからwgetコマンドを実行
    [シェル側]
     wget “http://localhost/test.php?val=1”

方法3)phpファイルにパラメータ付きのURLを記載して、
    そのPHPファイルを実行

方法4)シェルからcurlコマンドを実行
    [シェル側]
     curl “http://localhost/test.php?val=1”

※WordPressのメール更新のwp-mail.phpを実行する場合は
 wgetではダメで、curlを使用すればOK。
 wp-mail.phpは更新する時に実行が完了するまで
 画面を開いておかないといけないらしく、wget –spider
 だと実行完了前に閉じてしまう(?)ようだ。

メール投稿(wp-mail.php)の即時反映、カテゴリー変更、文字化けとか

■色々な疑問とか
 1.メール投稿すると「レビュー待ち」となり即時反映されない
  → ユーザー登録時のメールアドレスに列挙がないものは
    即時反映できない。
    「WP管理画面」 – 「設定」 – 「ユーザー」に
    メール投稿を許可したい送信元メールアドレスを登録する。

 2.メール投稿時の「カテゴリー」を自由に変更したい
  → wp-mail.php の変数 $post_category に配列[0]に
    カテゴリーIDを入れればOK。
    ※いまのところ、この方法で特に問題は起きてない。

    自分はwp-mail.phpに下記を記載。この「4」がcat_IDになる。
// $post_category = array(get_option(‘default_email_category’));
$post_category = array(0 => 4);

    ちなみに、デフォルト時に$post_categoryの中身を見たところ↓
    echo var_dump($post_category);
    // デフォが「未分類」のため、
    //  array(1) { [0]=> string(1) “1” }
    // と表示される。

 3.「文字化けされる」という情報について
  → 自分の環境では件名も本文も文字化けされなかったので、
    最新のバージョンだと文字化け対策がされている(?)ようだ。

WPのwp-mail.phpを使って投稿すると本文が空白になる件

■環境
 WordPress 2.9.2
 XAMPP
 Gmail(メール投稿)

■現象
 WPのメール投稿wp-mail.phpを使ってメール投稿すると件名のみが
 表示され、本文は空白となってしまう。

■原因
 HTML形式でメール投稿されていたため、wp-mail.phpが認識
 できていなかった。

■対策
 テキスト形式でメール投稿すれば、本文も問題なく表示される。