Organizations

amazonconnect amazonpolly appflow aws books camp childcare client vpn cloudfront cloudwatch codebuild daily datadog docker ec2 ecs eventbridge fargate gas homeserver iot jamf lambda life hack linux mac movie music php program python rds ruby running s3 tech terraform vpc windows wordpress 10km 2016 2018 2ブロック alfred amazonconnect amazones amazonpolly ansible apache api atcoder aws aws認定資格 backlog balmuda band bind boss box brew cakephp centos centos6 chef-solo ci circleci circlecijp cloud cloud sql cloud storage command crkbd cron css database diet digdag disney dlna dns docker docker-compose dockerfile dockertokyo ecr ecs edy eks elasticcloud elasticsearch em embulk ena evernote ezmlm fabric fargate fluentd font found fuzz galeracluster garageband gce gcp geek gem git github goo google google map googlemap gr-citrus gsuite happynewyear hatenatech helix homebrew html ikea infrataster iphone itamae iterm jamf k8s kinesis kintone knife-solo knowledge kpt kubernetes l2tp lancers lenovo let'ssplit linux live lolipop mac macos macアドレス mail mariadb mediatomb memory mfa midi mint60 ml mta mysql namazu nas nginx notion onedrive openssl peco pepabo perl php pixar pmf post python qiita qmail raspberrypi raycast redmine roland route53 rsync ruby ruby on rails salesforce sendgrid_jp sfdc sha2 shakeshack slack so-01j sony split sql sre srelounge srenext ssd ssh ssml stationery team terastation terminal terraform typescript ubuntu22.04 unix vagrant virtualbox visualstudiocode vm vpc vpn vpngate vscode vuls windows windows10 windows8 windowsserver2012 wordpress xperia xtechjaws xtechjaws07 zsh おサイフケータイ たからばこセッティング としまえん はてな アイアムアヒーロー アイアンマン アウトドアアンバサダー アプリ アレクサ インスタンスタイプ インターン インフラ ウィンドウズ ウェディング エフェクター エヴァ オープンソース カンバン キス キーキャップ キーボード ギター コキア コマンドプロンプト コンタクトセンター コース サーバーオペレーション サーバー移行 シェイクシャック シェルスクリプト スクラム スタジオ ステラタウン ストレージ スマホ セキュリティ タスク管理 ターミナル ダイエット チャリティー テックカンファレンス デスクトップ トライダガー ノートpc ハイレゾ ハゼ ハワイ ハンバーガー バイク バックアップ バンド バージョン管理 パスワード管理 パソコン パパ ピアノ ピクサー ピック ファン プロトレックスマート プロビジョニング ペイジェント ペパボ ポストモーテム ミニ四駆 メンタリング メンター メーリングリスト メール ヤフオク ヤマダ電機 ヤマダ電機モバイルドリーム館 ライブ ランニング リモートワーク レアジョブ レジン レツプリ レビュー ログ ロジカルシンキング 上尾 二段階認証 伊那市 会社 保育園 優しい世界 入門 全文検索 分割キーボード 初心者 勉強会 名前解決 外苑前 天キー 太陽 子供 学習リモコン 実写映画 家具 家族 家計簿 家電 小松菜奈 引っ越し 息子 成人式 技術書典 振り返り 新年 新幹線 新海誠 新米 旅行 日帰り旅行 映画 書評 東京湾 東京都知事 東野圭吾 桜台 検証 気分転換 水タバコ 池上彰 海釣り 温泉 漫画 炭酸泉 生産性 登山 監視 目標 確定申告 福島 立会川駅 組立て 経済学 結婚 練習音源 練馬 考える 育児 脆弱性 自作 自作エフェクター 自作キーボード 自宅サーバー 自宅鯖 花見 蕎麦 言葉 誕生日 読書 豊島園 貸し切り 赤外線 趣味プログラマー 転職 退職 選挙 釣り 釣り堀 銭湯 録音 長野県 障害報告 電動アシスト自転車 電動自転車 電子工作 電気工事士 電気工事士2種 電気風呂 露天風呂 養命酒 1歳
  • 内容 久しぶりの投稿ですね。 今日仕事でWordPressのデータから記事と投稿日付、そしてカテゴリー抽出する必要があり、ちょっといくつか勉強になったのでメモしておく。 SQLクエリ そこで色々調べたのと、教えてもらったGROUP_CONCATを使って下記のようなクエリが出来上がった。 SELECT wp_posts.id, wp_posts.post_date,wp_posts.post_title,wp_posts.guid, GROUP_CONCAT(wp_terms.name) as category FROM wp_posts, wp_terms, wp_term_relationships WHERE wp_posts.post_status = 'publish' AND wp_posts.ID = wp_term_relationships.object_id AND wp_term_relationships.term_taxonomy_id = wp_terms.term_id GROUP BY wp_posts.ID カテゴリーがなければ、こんなクエリは必要ないのだけど、カテゴリはterm_taxonomyというカスタム分類と呼ばれるもの?らしい。 詳細は下記公式のWikiを見るとして、複数テーブルのIDで連結させる必要があるのが注意点。 関数リファレンス/get terms その後、GROUP_CONCATとGROUP BYを使って、カテゴリーごとに記事がレコードとして表示されるのをまとめている。 これは会社の人に教えてもらったのだけど、とても便利だった。 区切り文字も指定できるようなので、カンマ以外もいけるようだ。 post_contentカラムのデータを含めば、記事の内容ももちろん出力可能。 CSVで出力するのにあたって 最初mysqldumpでCSVエクスポートやろうと思った。 普通にやると、下記のようなコマンドが使える。 mysqldump -u root -p -h HOSTNAME --single-transaction --tab=/tmp/ --fields-terminated-by=, wordpress wp_posts –tabと–fields-terminated-byはセットで使う必要がある。 これを使うと–tabで指定したディレクトリに、–fields-terminated-byで指定した区切り文字で区切ることができる。 しかし、RDSだと SELECT INTO OUTFILEという権限が付与されていないのか、rootでもAccess deniedとなる。 sedとか使ってやる方法もあるが、複数のデータを抽出する必要があり、都度シェルでやるのも面倒だったのでSequel Proを使って抽出することにした。 なお、Sequel Proでそのまま抽出するとUTF-8で、Execl for Macでは日本語が全て文字化けする。 CSVでエクスポートするなら、SequelProの環境設定>デフォルトエンコーディングをsjisに変更すれば、日本語も問題なくExecl for Macで表示できるようになる。
    SQL Created 8 Apr 2019
  • 概要 mainwpというWordPressがあり、そのディレクトリ配下に /subwp という階層に別のWordPressが存在したとする。 WordPressはデフォルトではDocumentRoot直下の階層、またはDocumentRootの一つ上の階層のwp-config.phpを読むようになっており、wp-config.phpをDocumentRoot配下に保存したくない場合は、通常は一つ上の階層にwp-config.phpを移動させるだけでWordPressが読みこんでくれる。 しかし、上記の環境のように、mainwp/subwp という階層だと、一つ上にはすでに別のWordPressが存在してしまい、それぞれ一つ上においても、DocumentRoot直下のwp-config.phpを先に読み込んでしまい、おかしなことになる。 解決方法 subwpのwp-configを保存したいディレクトリ(2階層上とか)にコピーする [root@test.inamuu.com subwp]# ll /home/hogeuser/mainwp/subwp_config/ 合計 16 -r--r----- 1 hogeuser www 4342 8月 30 23:46 wp-config.php 2.wp-load.phpを編集する [root@test.inamuu.com subwp]# diff -u wp-load.php{.bak,} --- wp-load.php.bak 2018-08-31 00:02:08.147884691 +0900 +++ wp-load.php 2018-08-31 00:03:07.828911588 +0900 @@ -31,10 +31,13 @@ * * If neither set of conditions is true, initiate loading the setup process. */ -if ( file_exists( ABSPATH . 'wp-config.php') ) { +if ( file_exists( '/home/hogeuser/mainwp/subwp_config/wp-config.
    Created 30 Aug 2018