[{"data":1,"prerenderedAt":325},["ShallowReactive",2],{"$ft6jtkd6xhw3c":3,"$f6akqrgu2x8d5":263},{"featured":4,"latest":129,"categories":227},[5,14,27,37,48,56,66,76,86,96,106,114,122],{"slug":6,"title":7,"date":8,"excerpt":9,"image":10,"categories":11},"custom-database-tables","Custom DataBase Tables","2015-11-24T02:29:34","You can create the new own table freely in the your WordPress database via this plugin. Then, you can make the management of table or (as view or entry or edit) data in a simple user interface.\\nAlso,","\u002Fassets\u002Fuploads\u002F2016\u002F02\u002Fcdbt-overview.png",[12],{"slug":13,"name":7},"cdbt",{"slug":15,"title":16,"date":17,"excerpt":18,"image":19,"categories":20},"10_php_tips_for_developers","PHP開発者が心得ておくべき10の鉄則","2016-01-11T18:38:09","PHPだけに限った話ではないが、プログラミングを行うに当たって、心得て、準備しておくと失敗が劇的に減る事柄をまとめてある良い記事を見つけたので、私なりの解釈で意訳しつつ、経験則を踏まえてあらためてまとめてみた。 オリジナ…","\u002Fassets\u002Fuploads\u002F2016\u002F01\u002Feyecatch-php-10-tips.jpg",[21,24],{"slug":22,"name":23},"column","コラム",{"slug":25,"name":26},"development","開発関連",{"slug":28,"title":29,"date":30,"excerpt":31,"image":32,"categories":33},"jquery-timeline-v1","2種類の横型タイムラインを簡単に作成できる「jQuery.Timeline」をリリース","2017-05-29T14:55:46","現在開発しているサービスで利用するべく、横型タイムラインを生成できるjQueryプラグインを自作したので、そこだけ単独でリリースしてみた。 ソースコード等はGitHubの方にリリースしてあるので、興味のある方は、そち…","\u002Fassets\u002Fuploads\u002F2017\u002F05\u002Fjquery_timeline_image.png",[34],{"slug":35,"name":36},"jqtl","jQuery.Timeline",{"slug":38,"title":39,"date":40,"excerpt":41,"image":42,"categories":43},"optimize-browser-cache-of-static-resources","更新されたJS、CSS、画像のみブラウザキャッシュを破棄して読み込ませる","2018-01-31T15:47:47","WEBサービスの保守や開発をやっていると、JavaScriptやスタイルシート、画像などの静的リソースを更新した際、しばしば「確認したけど、更新されてないよ」とか云われて、「ブラウザのキャッシュを消してからもう一度見て…",null,[44,47],{"slug":45,"name":46},"codes","コード集",{"slug":25,"name":26},{"slug":49,"title":50,"date":51,"excerpt":52,"image":53,"categories":54},"jquery-timeline","jQuery.Timeline version2 – full documentation","2019-03-04T20:40:48","Plugin Overview The jQuery.Timeline plugin provides you two types of the horizontal timeline. You can create a…","\u002Fassets\u002Fuploads\u002F2019\u002F03\u002Fjquery.timeline_v2.jpg",[55],{"slug":35,"name":36},{"slug":57,"title":58,"date":59,"excerpt":60,"image":61,"categories":62},"released-the-sloth","Released the Sloth of mobile-first CSS micro framework!","2019-04-16T18:04:25","I released the “Sloth” that is mobile-first CSS micro framework. I have long used frontend framewo…","\u002Fassets\u002Fuploads\u002F2019\u002F04\u002Fsloth_doc_head.png",[63],{"slug":64,"name":65},"sloth","Sloth",{"slug":67,"title":68,"date":69,"excerpt":70,"image":71,"categories":72},"challenge-to-conceal-the-wordpress-site","WordPressサイトを徹底的に秘匿化する","2020-02-02T23:59:58","私は自分の個人サイトをはじめ、仕事でもWordPressサイトを運用している。WordPressは気軽にサイトを立ち上げられてカスタマイズも簡単な、素晴らしいオープンソースなのだが、世界中で使われまくっているその知名度…","\u002Fassets\u002Fuploads\u002F2020\u002F02\u002Fshutterstock_1878005929.jpg",[73],{"slug":74,"name":75},"wordpress","WordPress関連",{"slug":77,"title":78,"date":79,"excerpt":80,"image":81,"categories":82},"what-is-forkor","Made a shortened URL app called Forkor","2020-07-07T22:27:01","What’s Forkor? Forkor is a service that provides a shortened URL feature that allows you to redirect any…","\u002Fassets\u002Fuploads\u002F2020\u002F07\u002Fforkor.png",[83],{"slug":84,"name":85},"forkor","Forkor",{"slug":87,"title":88,"date":89,"excerpt":90,"image":91,"categories":92},"manual-about-svg-japan","インタラクティブな日本地図を生成するJSプラグイン「SVG Japan」","2020-11-16T21:19:58","各都道府県をそれぞれ選択・クリック可能なインタラクティブな日本地図を生成するネイティブJavaScript建てのプラグイン「SVG Japan」を作ったので、その紹介と使い方をまとめておく。ちなみにソースコードはgit…","\u002Fassets\u002Fuploads\u002F2020\u002F11\u002Fsvg-japan.png",[93],{"slug":94,"name":95},"svg-japan","SVG Japan",{"slug":97,"title":98,"date":99,"excerpt":100,"image":101,"categories":102},"wp-ignitor-plugin-to-conceal-wordpress-site","WordPressサイトを秘匿化するプラグイン「WP Ignitor」","2021-01-19T15:28:21","以前「WordPressサイトを徹底的に秘匿化する」という記事で、WordPress建てのサイトを秘匿化する方法を取り上げたのだが、あれをサイト構築時に毎度実施するとなるととても労力が必要であった。そこで、もっとお手軽…","\u002Fassets\u002Fuploads\u002F2021\u002F01\u002Fbanner-1554x500-1.png",[103],{"slug":104,"name":105},"wp-ignitor","WPイグナイタ",{"slug":107,"title":108,"date":109,"excerpt":110,"image":111,"categories":112},"tastewp","無料でWordPressサイトを複数作成できるWEBサービス「TasteWP」","2021-03-25T20:21:59","私が日本語翻訳に協力しているWEBサービス「TasteWP」について紹介しようと思う。 https:\u002F\u002Ftastewp.com このサービス、サインアップすることなく無料で自分用のWordPressサイトを作れるとい…","\u002Fassets\u002Fuploads\u002F2021\u002F03\u002FTasteWP_screenshot.png",[113],{"slug":74,"name":75},{"slug":115,"title":116,"date":117,"excerpt":118,"image":119,"categories":120},"monster-hunter-rise-skill-simulator","モンハンライズのスキルシミュレータを作ってみた！","2021-06-28T20:24:52","コラムで連載していたNintendo Switch版『モンスターハンターライズ』のスキルシミュレータ開発がやっと一段落して一通り完了した。いやぁ、記事書きながら同時並行で開発すると思っていた以上に時間がかかるもんだなぁ…","\u002Fassets\u002Fuploads\u002F2021\u002F06\u002Fmhrss_v100.png",[121],{"slug":25,"name":26},{"slug":123,"title":124,"date":125,"excerpt":126,"image":42,"categories":127},"comparison-of-javascript-date-libraries","JavaScriptの日時ライブラリを比較してみた","2021-07-28T22:39:19","ネイティブJavaScriptで日時を取り扱う場合、ビルトインされているDateオブジェクトを使うことになるのだが、このDateオブジェクトは取り扱いにクセが多く、直感的に日時を操作できない点でも有名である。そこで、専…",[128],{"slug":25,"name":26},[130,141,153,165,175,184,192,195,198,206,213,220],{"slug":131,"title":132,"date":133,"excerpt":134,"image":135,"categories":136},"pulllog_launched","ガチャ履歴を記録・分析できるWebサービス「PullLog」","2025-08-22T13:05:30","このたび、新しい個人開発サービスとして 「PullLog（プルログ）」 をリリースした。 URLはこちら https:\u002F\u002Fpulllog.net PullLogとは？ PullLogは、ソーシャルゲームのガチャ履歴を記録…","\u002Fassets\u002Fuploads\u002F2025\u002F08\u002Fpulllog_stats_jp.png",[137,140],{"slug":138,"name":139},"industries","プロダクト",{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":147},"mockapi-php-openapi-schema-generation","モックAPIのレスポンスから OpenAPI 3.0 スキーマを自動生成するPHPツール","2025-04-17T09:31:52","私自身がそうなのですが、OpenAPI仕様書を毎回手作業で書いていて「面倒だな」と思ったことはありませんか？ そんな（私と）あなたにぴったりのツールがあります。 レスポンスの例さえ用意すれば、OpenAPI 3.0 スキ…","\u002Fassets\u002Fuploads\u002F2025\u002F04\u002Fswaggerui-preview.png",[148,151,152],{"slug":149,"name":150},"mockapi-php","MockAPI-PHP",{"slug":138,"name":139},{"slug":25,"name":26},{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":159},"ambient_playlist_customize","Ambientでメメントモリのラメントプレイヤーを作る","2023-11-30T17:32:39","「Ambient」の最新バージョン 1.2.0で実装した「疑似フェーダー」機能を使って、ソーシャルゲーム「メメントモリ」のYouTube公式チャンネルで公開されているMVを集約したラメント専用プレイヤーを作ってみた。 ラ…","\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_mememori_1.png",[160,163,164],{"slug":161,"name":162},"ambient","Ambient",{"slug":138,"name":139},{"slug":25,"name":26},{"slug":166,"title":167,"date":168,"excerpt":169,"image":170,"categories":171},"released_ambient_demo_version","Ambientメディアプレイヤーのクラウド版デモを公開","2023-11-22T13:47:36","つい先日「Ambient」の最新バージョン 1.1.0をリリースして、それに合わせてクラウド版デモサイトも公開してみた。 なお、クラウド版デモでローカルのホストコンピュータのメディアを再生するには、そのメディアファイルも…","\u002Fassets\u002Fuploads\u002F2023\u002F10\u002FAmbientMediaPlayer-typologo.png",[172,173,174],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":176,"title":177,"date":178,"excerpt":179,"image":170,"categories":180},"ambient-media-player","YouTubeと自分のPC内メディアを同時に再生できるメディアプレイヤーを作ってみた","2023-10-20T00:00:25","私はよくPCで何か作業をするときには音楽を垂れ流していることが多い。 そういう時にかける曲は、手持ちのアルバムCD等からPCに取り込んだ音源だったり、さらにはYouTubeの動画だったりとメディアや再生環境がバラバラだ。…",[181,182,183],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":185,"title":186,"date":187,"excerpt":188,"image":189,"categories":190},"what-is-the-sunorhc","Sunorhc is a date-time library for JavaScript","2021-08-25T22:55:55","Sunorhc is a lightweight library for handling dates and times for JavaScript. The library wraps a native JavaS…","\u002Fassets\u002Fuploads\u002F2021\u002F08\u002Fshutterstock_1091212919_resized.jpg",[191],{"slug":25,"name":26},{"slug":123,"title":124,"date":125,"excerpt":126,"image":42,"categories":193},[194],{"slug":25,"name":26},{"slug":115,"title":116,"date":117,"excerpt":118,"image":119,"categories":196},[197],{"slug":25,"name":26},{"slug":199,"title":200,"date":201,"excerpt":202,"image":203,"categories":204},"mhrise-skill-simulator-creation-chapter-12","モンスターハンターライズのスキルシミュレータを作ってみる！ 第12回","2021-06-21T13:11:46","今回は「マイセット登録」と護石データの「エクスポート／インポート」機能の追加をしていく。折り良く（悪く？）「FF7リメイク・インターグレード」や「FORTNITEシーズン7」が出たこともあって、そっちをプレイしてたらこ…","\u002Fassets\u002Fuploads\u002F2021\u002F04\u002Fb6ca09e9a7f6faf27641f62dabe64c6ff97b4f326aa478379e3c112aa28eb9ab.jpg",[205],{"slug":22,"name":23},{"slug":207,"title":208,"date":209,"excerpt":210,"image":203,"categories":211},"mhrise-skill-simulator-creation-chapter-11","モンスターハンターライズのスキルシミュレータを作ってみる！ 第11回","2021-06-07T14:52:31","さて、今回はユーザー個別データの管理部分を開発していく予定だが、まずその前にやっておくことがある。 新スキル「風雷合一」に対応する Ver.3.0の大型無料アップデートで追加された新スキルに「風雷合一」というのがある…",[212],{"slug":22,"name":23},{"slug":214,"title":215,"date":216,"excerpt":217,"image":203,"categories":218},"mhrise-skill-simulator-creation-chapter-10","モンスターハンターライズのスキルシミュレータを作ってみる！ 第10回","2021-06-02T00:29:10","今回は、護石管理画面の作成だ。この護石管理では、ユーザーごとに護石の登録を行う機能と、登録した護石を削除する機能を持つ仕様になる。この画面から登録した護石データはデータベースに格納するので、フロントエンド側からのリクエス…",[219],{"slug":22,"name":23},{"slug":221,"title":222,"date":223,"excerpt":224,"image":203,"categories":225},"mhrise-skill-simulator-creation-chapter-9","モンスターハンターライズのスキルシミュレータを作ってみる！ 第9回","2021-05-22T23:56:27","さて、今回はVuexによるデータ・キャッシュの実装だ。一度データベースから読み込んだデータをフロントエンド側で再利用可能なストアに格納することで、データベースへの接続回数を減らしてシステム負荷を下げるとともに、UX的な…",[226],{"slug":22,"name":23},[228,230,232,236,238,239,240,241,242,244,247,248,250,252,254,258,261],{"slug":161,"name":162,"count":229},3,{"slug":13,"name":7,"count":231},7,{"slug":233,"name":234,"count":235},"csnp","Custom Sticky Notes",2,{"slug":84,"name":85,"count":237},1,{"slug":35,"name":36,"count":229},{"slug":149,"name":150,"count":237},{"slug":64,"name":65,"count":237},{"slug":94,"name":95,"count":237},{"slug":74,"name":75,"count":243},37,{"slug":245,"name":246,"count":237},"wpqt","WP Qiita",{"slug":104,"name":105,"count":237},{"slug":22,"name":23,"count":249},29,{"slug":45,"name":46,"count":251},16,{"slug":138,"name":139,"count":253},5,{"slug":255,"name":256,"count":257},"lifelog","ライフログ",64,{"slug":259,"name":260,"count":235},"uncategorized","未分類",{"slug":25,"name":26,"count":262},45,{"type":264,"post":265},"post",{"slug":266,"title":267,"date":268,"excerpt":269,"image":42,"categories":270,"modified":268,"html":272,"tags":273,"related":284,"prev":311,"next":318},"tips-for-moving-data-between-both-wordpress-site","WordPressサイト間のデータ移管について","2015-09-11T13:57:48","WordPressのサイトリニューアルなどで、サーバ環境ごと旧サイトから新サイトへ移行するケースがある。よくあるのが、サーバが老朽化したので新しいサーバに環境を移管する時とかだ。ほかに局地限定になるが、クラウド大手のAW…",[271],{"slug":74,"name":75},"\u003Cp>WordPressのサイトリニューアルなどで、サーバ環境ごと旧サイトから新サイトへ移行するケースがある。よくあるのが、サーバが老朽化したので新しいサーバに環境を移管する時とかだ。ほかに局地限定になるが、クラウド大手のAWSの例で、旧来型のParavirtual系インスタンスからモダンなHVM系インスタンスへ移管する場合に、PV2HVM変換とか面倒過ぎてHVMで環境作り直した方が早くね？とか思った時だ（リアル過ぎ…w）。\u003C\u002Fp>\n\u003Cp>まぁ、移管理由は色々あれど、今回、私が経験したのが、旧サイトが1ホスト（サーバ）=1サイト（WordPress）という環境だったのに対して、新サイトはサブディレクトリ型の構造で、そのサブディレクトリの一つへサイト（WordPress）全体を移すという要件だった。サブディレクトリ内にWordPressをインストールするところまでは、何の問題もなかったのだが、いざデータ移行となって問題が発生した。今までさんざんやって来たDBデータをフルダンプした後に、新環境のDBへインポートするという手順が上手くいかなかったのだ。\u003C\u002Fp>\n\u003Cp>──そんなわけで、WordPressのインポートツールを利用しながら、データ移管を行ってみた次第。\u003C\u002Fp>\n\u003Ch3>一般的なDBダンプファイルによるデータ移管\u003C\u002Fh3>\n\u003Cp>まず、今回上手くいかなかったが、通常WordPressサイト間のデータ移管であれば、この方法で行うのがもっぱらなのではないだろうか。実際、私もこの方法でしかやったことがなかったし、環境を複製する場合は確実で早い。\u003C\u002Fp>\n\u003Cp>やり方は至ってシンプルで、まず、移管元DBからデータをエクスポートする。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysqldump -u db_user -ppassword -h localhost -r dump_data.sql --single-transaction old_database_name\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>次に、移管先DBへエクスポートデータをインポートする。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysql -u db_user -ppassword -h localhost new_database_name &lt; dump_data.sql\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>そして、もしサイトのDNS（ドメイン）やWordPressインストールパスが変わる場合は、移管先DBのオプション定義値を更新する。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysql -u db_user -ppassword -h localhost\n ↓ログイン後\n&gt; use new_database_name\n&gt; update wp_options set option_value='http:\u002F\u002Fnew.domain.name' where option_name='siteurl';\n&gt; update wp_options set option_value='http:\u002F\u002Fnew.domain.name' where option_name='home';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>これだけで、移管元と全く同じデータを持った環境ができる。\u003C\u002Fp>\n\u003Cdiv class=\"clearfix\" style=\"margin-top: 3em;\">\u003C\u002Fdiv>\n\u003Cp>しかし、今回はこの方法では上手くいかなかったので、WordPressの管理メニュー「ツール」に昔からある「エクスポート」「インポート」のツールを使ってデータ移管をしてみた。\u003C\u002Fp>\n\u003Ch3>WordPressのバンドルツールによるデータ移管\u003C\u002Fh3>\n\u003Cp>手順としては、下記のようになる。\u003C\u002Fp>\n\u003Ch4>\u003Cstrong>1. 移管元のWordPressでデータをエクスポートする\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>管理画面から 「ツール」->「エクスポート」を選択して、「すべてのコンテンツ」を選んで「エクスポートファイルをダウンロード」をクリック。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2015\u002F09\u002Fwp_export_import_step1.png\" alt=\"WordPress エクスポート\" title=\"WordPress エクスポート\" class=\"center-block\" \u002F>\u003C\u002Fp>\n\u003Cp>XMLファイルがダウンロードされれば、エクスポート完了だ。\u003C\u002Fp>\n\u003Ch4>\u003Cstrong>2. ユーザーデータの移管\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>WordPressのエクスポート／インポートのツールでは、ユーザーデータの移管ができない。移管先に該当するユーザーが存在しない場合、新規にユーザーが作成されるか関連付けるユーザーを選択するという仕様になっている。もし移管先にユーザーデータを移動する必要がないのであれば、このステップはスキップしてしまって構わない。ただし、ユーザデータも併せて移管したい場合は、それ系のプラグインを探して利用するか、その部分のみDBダンプで移管する必要がある。\u003C\u002Fp>\n\u003Cp>WordPressの公式インポートツールでは、データインポート時にインポート先のWordPressに同じユーザ（ユーザーIDと投稿名、メールアドレスが同じユーザー）がいれば、そのユーザーにデータを紐付け、いなければ新たにユーザーを作成しながらデータを移動する。複数ユーザがいるデータに対して、もし先にユーザーデータを移管せずに新規作成方式でデータインポートを行ってしまうと、移管先に作成されたユーザーのパスワードやプロフィールについて、また登録し直す運用が発生してしまう。特にパスワードは不可逆暗号化されてDBに保管されているため、再度個々のユーザに再設定してもらわないといけないため、コンシューマー・ユーザーを抱えているサイトでは、およそ現実的ではない。\u003C\u002Fp>\n\u003Cp>──ということで、ユーザーデータはDBダンプ形式で移管を行うことになる。\u003C\u002Fp>\n\u003Cp>まず、移管先のDBから、ユーザーテーブルとユーザーメタテーブルをダンプしておく（切り戻し用にCREATE TABLE文も含める）。これは、移管先にWordPressをインストールした時に作成されたルート管理者とテーブルそのものを補完するための作業だ。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysqldump -u db_user -ppassword -h localhost -r new_database_name.user_tables.sql --single-transaction new_database_name wp_users wp_usermeta\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>これで、移管先DBのユーザーデータがバックアップされた。もしこの後、ユーザーデータ移管などに失敗した場合でも、状況を切り戻したい時には、このデータをインポートすればよい。\u003C\u002Fp>\n\u003Cp>次に、移管元のDBからユーザーテーブルとユーザーメタテーブルを\u003Cstrong>データのみ\u003C\u002Fstrong>、かつ\u003Cstrong>insert-ignoreオプション付き\u003C\u002Fstrong>でダンプする。insert-ignoreオプションがないと、インポート先に重複するユーザ（ルート管理者）がいるためにエラーになってしまうので、それを回避させる。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysqldump -u db_user -ppassword -h localhost -r old_database_name.user_tables.ignored.sql --single-transaction --insert-ignore -t old_database_name wp_users wp_usermeta\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>-t\u003C\u002Fcode> オプションはテーブルに含まれるデータのみをダンプするオプションだ。\u003Cbr \u002F>\n\u003Ccode>mysqldump\u003C\u002Fcode> のすべてのオプションについては、下記のページにくわしくまとめられているので、ご参考まで。\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.risewill.co.jp\u002Fblog\u002Farchives\u002F195\" title=\"mysqldumpの使い方 オプション編\">\u003Ci class=\"fa fa-link\">\u003C\u002Fi> mysqldumpの使い方 オプション編\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>そして、移管先のDBへ移管元DBのユーザーデータをインポートする。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ mysql -u db_user -ppassword -h localhost new_database_name &lt; old_database_name.user_tables.ignored.sql\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>これで、\u003Cstrong>移管元のルート管理者以外\u003C\u002Fstrong>のユーザーデータがインポートされる。もし、移管先にルートユーザー以外に重複ユーザー（ユーザーIDが同じユーザー）がいた場合は、上書きされないので、あぶれたユーザーについては別途手動で移管するか、インポートするダンプデータを開いて該当するユーザーのユーザーIDを重複しない値に変更してからインポートする等で対応できる。\u003C\u002Fp>\n\u003Ch4>\u003Cstrong>3. 移管先のWordPressにインポートツールをインストール\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>WordPressにはインポートツールはバンドルされていないので、管理画面の「ツール」->「インポート」より「WordPress」のインポートプラグインをインストールする必要がある。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2015\u002F09\u002Fwp_export_import_step2.png\" alt=\"WordPress インポートツールインストール\" title=\"WordPress インポートツールインストール\" class=\"center-block\" \u002F>\u003C\u002Fp>\n\u003Cp>一覧から「WordPress」をクリックするとプラグインダウンロード用のダイアログがポップアップするので、そこからダウンロードする。\u003C\u002Fp>\n\u003Ch4>\u003Cstrong>4. インポートプラグインを有効化して、エクスポートファイルをアップロードする\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>インストールされたプラグインを有効化して、再度「ツール」->「インポート」より「WordPress」を選べばインポートツールが起動する。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2015\u002F09\u002Fwp_export_import_step3.png\" alt=\"WordPress インポート\" title=\"WordPress インポート\" class=\"center-block\" \u002F>\u003C\u002Fp>\n\u003Cp>ここから \u003Cstrong>1.\u003C\u002Fstrong> の手順でエクスポートしたXMLファイルをアップロードするのだが、環境によってはアップロード最大サイズがXMLファイルより小さくてアップロードできないケースがある。というのも、PHPのデフォルト設定ではファイルアップロードに対して2MBまでというキャップが付いているので、その場合2MB以上のXMLファイルはアップロードできないのだ。\u003C\u002Fp>\n\u003Cp>そんな場合は、PHPの設定を修正して2MB以上のファイルアップロードができるようにする。ついでにインポート処理には結構時間がかかるので、時間がかかり過ぎて処理がタイムアウトしないようにもしておけば不安がなくなる。\u003Cbr \u002F>\n\u003Ccode>\u002Fetc\u002Fphp.ini\u003C\u002Fcode>で修正してもよいのだが、そちらでやってしまうと設定の反映にOS再起動が必要だったり、実際にはインポートの時だけ一時的にキャップが外れればよいのに、継続的に有効化されてしまって後々不都合が出てきたりするので、\u003Ccode>.htaccess\u003C\u002Fcode>に設定を入れるのが実用的だ。\u003C\u002Fp>\n\u003Cp>──ということで、\u003Ccode>.htaccess\u003C\u002Fcode>に下記のローカル設定を追加する。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&lt;IfModule mod_php5.c&gt;\nphp_value ignore_user_abort On\nphp_value post_max_size 10M\nphp_value upload_max_filesize 10M\nphp_value memory_limit 128M\nphp_value max_execution_time 0\nphp_value max_input_time 0\nphp_value session.gc_maxlifetime 1440\n&lt;\u002FIfModule&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>インポートが終わったらコメントアウトしておくなりして、必要な時以外は無効化しておくと良いかと。\u003C\u002Fp>\n\u003Ch4>\u003Cstrong>5. インポートの実行\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>エクスポートファイルがアップロードされると、各データに関連付けられているユーザーに対して、移管先のWordPressのどのユーザーにそれを割り当てるかという設定画面が表示されるので、ここで投稿者の割り当てを変更したり、必要であればユーザーを作成する等のカスタマイズが可能だ。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2015\u002F09\u002Fwp_export_import_step4.png\" alt=\"WordPress インポート実行\" title=\"WordPress インポート実行\" class=\"center-block\" \u002F>\u003C\u002Fp>\n\u003Cp>ユーザーが多いと、選択していくのも一苦労なのだが、すでに同名ユーザーが移管先に登録されていれば、ユーザー割り振りはしなくても、プラグインの方で自動で同一ユーザーにデータを割り振ってくれる。今回はすでにユーザーデータは移管済みなので、ユーザーの割り振りは何もすることなく、投稿に添付されている添付ファイルをインポートするかどうかだけを選んで、「実行」を押すだけでよい。\u003C\u002Fp>\n\u003Cp>インポートデータの数にもよるが、インポートが完了するまでは結構時間がかかるので、完了メッセージが出力されるまで気長に待とう。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2015\u002F09\u002Fwp_export_import_step5.png\" alt=\"WordPress インポート結果\" title=\"WordPress インポート結果\" class=\"center-block\" \u002F>\u003C\u002Fp>\n\u003Cp>何気にメディアのインポートはすべて成功しないことがあるので、失敗したメディアについては後で手動で再登録するなり、移管元のアップロードディレクトリごと移管先に持ってくるのが確実である。\u003C\u002Fp>\n\u003Cp>もし\u003Ccode>.htaccess\u003C\u002Fcode>を追記していた場合、最後に追加設定を無効化しておくことを忘れないように。\u003C\u002Fp>\n\u003Cdiv class=\"clearfix\" style=\"margin-top: 3em;\">\u003C\u002Fdiv>\n\u003Ch3>まとめ\u003C\u002Fh3>\n\u003Cp>WordPress間のデータ移管は公式のインポートツールを使うより、やはりDBダンプ型の方が簡単で確実性が高い。\u003C\u002Fp>\n\u003Cp>もし、公式インポートツールプラグイン「WordPress Importer」でユーザーデータも同時に移管できれば、かなり使い勝手のよいツールになると思う。他に公式SVNに登録されているWordPressのコアデータをユーザーデータ含めてエクスポート／インポートするようなプラグインを探してみたが、どうも目ぼしいのが見つからなかった（たぶんあるとは思うのだが…）。\u003C\u002Fp>\n",[274,276,278,281],{"slug":275,"name":275},"mysqldump",{"slug":74,"name":277},"WordPress",{"slug":279,"name":280},"wordpress-importer","WordPress Importer",{"slug":282,"name":283},"%e3%83%87%e3%83%bc%e3%82%bf%e7%a7%bb%e7%ae%a1","データ移管",[285,288,296,304],{"slug":107,"title":108,"date":109,"excerpt":110,"image":111,"categories":286},[287],{"slug":74,"name":75},{"slug":289,"title":290,"date":291,"excerpt":292,"image":293,"categories":294},"create-wordpress-theme-with-vuetify","WordPressのテーマをVuetifyで作る","2020-11-20T12:16:06","最近Vue.jsが楽しくて仕方がない。WordPressのサイト開発にもVue.js使っている今日この頃だ。今時のWordPressと云えばReactなのだが、どうもReactには私的に嫌悪感が付きまとうのだ……なぜだ…","\u002Fassets\u002Fuploads\u002F2020\u002F11\u002Fwp-vuetify-theme-hw.png",[295],{"slug":74,"name":75},{"slug":297,"title":298,"date":299,"excerpt":300,"image":301,"categories":302},"illustrated-wp-login-php-to-understand-wordpress-user-authentication","図解『wp-login.php』！ WordPressのユーザ認証を極める！","2020-04-27T22:02:10","ここ最近、「FF7Remake」やら「MHW:IB」の傍らの空き時間で「WordPressサイトの秘匿化チャレンジ」と称した独自プロジェクトをやっているのだが、その中でWordPressのユーザ認証周りの秘匿化が何気に…","\u002Fassets\u002Fuploads\u002F2020\u002F04\u002Fwp-login-docs.png",[303],{"slug":74,"name":75},{"slug":305,"title":306,"date":307,"excerpt":308,"image":71,"categories":309},"part4-conceal-of-registration-or-authentication-on-wordpress","第４章 WordPressの登録・認証系の秘匿化","2020-03-26T02:06:28","前章までの施策によって、フロントエンド側に出力されるコンテンツ系ページからWordPressっぽさを排除できた。だが、ログイン画面などの認証系周りは未施策なため、この章ではその辺の秘匿化を行なっていく。 まず、現状の…",[310],{"slug":74,"name":75},{"slug":312,"title":313,"date":314,"excerpt":315,"image":42,"categories":316},"registered-to-the-wordcamp-tokyo-2015","WordCamp Tokyo 2015 に参加することにした","2015-09-10T12:24:20","今年もWordCamp Tokyoが10月31日と11月1日の二日に渡って開催される。去年は忙しくて行けなかったので、今年こそはと思っていただけに楽しみだ。早速参加登録しましたよ。いやはや、去年「CustomDataBa…",[317],{"slug":255,"name":256},{"slug":319,"title":320,"date":321,"excerpt":322,"image":42,"categories":323},"i-live-my-life-the-way-i-would-like-5th","好きなことだけして生きてみることにした 第5回","2015-09-14T11:34:52","無事、「起業家セミナー」の申し込みが受理されて、後は二ヵ月後のセミナーを待つだけとなったのだが、だからといってただ待っているだけでは時間の無駄だ。 この時期、私が漠然と考えていた「起業スケジュール」は、今年2015年中に…",[324],{"slug":22,"name":23},1793391398389]