0

新しく構築した WordPress サイトをリモート サーバーのサブ ディレクトリからルート ディレクトリに移動しました。画像メタデータ (つまり、ファイルと URL) を含むメタデータが関連付けられたカスタム投稿タイプがいくつかあります。明らかに、URL からサブディレクトリを削除する必要がありました。私は置換SQLクエリでそうしました。

現在、wordpress はメタデータを認識しません。次のコードを書くと:

 $img = get_post_meta($post->ID,"mf_logo",true);
 var_dump($img);

「bool(false)」が出ます。新しい画像をアップロードしようとしましたが、表示されています。次に、MySQL を介して URL を手動で変更しましたが、やはり認識されませんでした。

この問題は配列形式のメタデータでのみ発生し、「通常の」メタデータでは発生しないことに注意することが重要です。

どうぞよろしくお願いいたします。

4

1 に答える 1

1

メタデータ ( update_post_metaget_post_meta...) を使用する場合、配列は db で自動的にシリアル化されます。

http://codex.wordpress.org/Function_Reference/update_post_meta

渡された配列は文字列にシリアル化されます。

また、シリアル化された配列内の文字列を単純に置き換えることはできません。

$data = array('key'=>'value');
echo serialize($data);

これは出力します:a:1:{s:3:"key";s:5:"value";}

キーまたはを短い/長い文字列に単純に置き換えると、データが壊れます。

  • a:1:{s:3:"key";s:5:"replace";}間違っています
  • a:1:{s:3:"key";s:7:"replace";}正しい

これを処理するバッチを作成できます。

しかし、これに先立って、リンクを壊すことなく、ワードプレスを独自のディレクトリに置き、ルートディレクトリからアクセスできるようにすることができることを知っていますか?

ここを見てください: http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_install

于 2012-04-20T12:35:22.460 に答える