質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • PHP

    20401questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7234questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • Google API

    528questions

    Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

  • Google マップ

    358questions

    Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Advanced Custom Fieldsのgoogle mapフィールドをcsvで投稿

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 220
退会済みユーザー

退会済みユーザー

 前提・実現したいこと

Advanced Custom Fieldsのmapフィールドは、簡単な住所(市区町村と社名など)を入力するだけで入力した住所にマ-カ-を立てることができ便利なのですが、csvファイルからの投稿を登録した場合、このmapフィールドに住所情報が入っていかず困っています。(手入力で登録すれば問題ないのですが、大量にあります)また、csvインポートはReally Simple CSV Importerを使用しております。

調べたところ、下記URLに答えが書かれていそうなのですが、ちょっと内容が難しくてわからず困っています。

https://ja.forums.wordpress.org/topic/134082?replies=5

http://notnil-creative.com/blog/archives/3465

https://wordpress.org/support/topic/import-acf-google-map-field/

上記URLペ-ジに書かれている事を噛み砕いて解説していただくか、ズバリな解決方法をご提示いただけませんでしょうか。

 試してみたこと

https://gist.github.com/hissy/ebb1d317f9abc190b901

上記URLペ-ジのzipをダウンロードし、wordpressプラグインとしてダウンロードしました。

    public function convert_gmap($meta, $post, $is_update) {

        // serialize metadata
        $gmap_field = array();
        if (isset($meta['lat']) && isset($meta['lng'])){
            $gmap_field['lat'] = $meta['lat'];
            $gmap_field['lng'] = $meta['lng'];
            $gmap_field['address'] = $meta['address'];
            unset($meta['lat']);
            unset($meta['lng']);
            unset($meta['address']);
        }
        $meta['field_54899effa7dbe'] = $gmap_field; // please change the field key to yours

        return $meta;

gistfile2.php内の上記コードを書き換えを色々試してはいますが、希望の結果にはなりません。また、field keyが正しいのかさえわかりません。

何卒、宜しくお願致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

https://ja.wordpress.org/plugins/really-simple-csv-importer/
プラグインページを参考にCSVファイルの地図データ部分を連想配列でシリアライズした状態で保存すればいいだけかと。

really_simple_csv_importer_save_metaを使って

function really_simple_csv_importer_save_meta_filter( $meta, $post, $is_update ) {
    $meta_array = array();
    if (isset($meta['lat'])) $meta_array['lat'] = $meta['lat'];
    if (isset($meta['lng'])) $meta_array['lng'] = $meta['lng'];
    $meta = array( 'map' => $meta_array );
    return $meta;
}
add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_save_meta_filter', 10, 3 );


mapには自身のカスタムフィールドのキーを指定。

住所だけを保存しても地図は表示できないので、住所は不要で緯度経度が必須。

post_title post_status post_type lat lng
test publish post 35.710233 139.810709

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/30 10:20

    コメント有難う御座います。
    ```
    add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_save_meta_filter', 10, 3 );
    ```
    の部分がエラーが出ました。また、カスタムフィールドのキーはmeta_keyでよろしいでしょうか?宜しくお願い致します。

    キャンセル

  • 2018/07/30 22:11

    >エラーが出ました
    そうですか。じゃあ諦めてください。

    >カスタムフィールドのキーはmeta_keyでよろしいでしょうか?
    どのような設定か環境が一切不明なので分かりません。

    キャンセル

0

うまくいかないだけでは、どこが悪いのかわかりません。
どこをどのように書き換えたのでしょうか?
どのような結果を期待していて、どのような結果になったのでしょうか? 


field_54899effa7dbe の部分は、acf でカスタムフィールドを定義した時に ACF が割り振る フィールド ID ですので、環境により異なります。
お使いの環境の ACF で定義した「カスタムフィールド」の フィールド ID に書き換えましたか?

どのようなカスタムフィールドを定義して、どのような CSV ファイルをインポートして、どのような値が入ることを期待しているのでしょうか。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/29 18:09

    コメントありがとうございます。google mapのカスタムフィールドをCSVで簡単な住所(市区町村と社名など)一括投稿したいということです。エラーも出てなく私自身どこが悪いかも検討つきません、またこのコードが正しいのかすらわかりません。
    カスタムフィールドでのgoogle map箇所のIDは"map"なので、[field_54899effa7dbe]の部分を「カスタムフィールド」の フィールド ID"map"に試してみましたがエラーがでました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20401questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7234questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • Google API

    528questions

    Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

  • Google マップ

    358questions

    Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。