Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

WordPress

WordPressの検索機能のカスタマイズ

post_typeを追加したいという要件だった。これで瞬殺。 is_search) { $query->set('s', $query->get('s')); $query->set('post_type', ["post", "page", "YOUR_POST_TYPE"]); } } add_filter('pre_get_posts', 'custom_search_query'); WP_Queryで指定できる…

WordPressの記事カテゴリを一括置換するSQL

プラグインとか入れるの面倒じゃないですか。WordPressには「wp_terms」(wp_はご自身のWordPressのプレフィックスに読み替えて下さい)というテーブルがあります。ここに記事のカテゴリ等が全て格納されています。記事のカテゴリと記事の紐付けは「wp_term_re…

dockerでWordPressのコンテナを作るときに、全てのファイルをマウントする方法

要は、/var/www/htmlフォルダそのものをvolumesでマウントする方法です。 volumes: - "$PWD:/var/www/html"これでいけました。$PWDは、docker-composeしたディレクトリを指すようです。

tax_queryの検索が上手くいかない

配列をネストする必要がありました。これやからPHPは(ry array( 'taxonomy' => 'XXXX', 'field' => 'slug', 'terms' => 'YYYY', ) //いけるやつ 'tax_query' => array( array( 'taxonomy' => 'XXXX', 'field' => 'slug', 'terms' => 'YYYY', ) )

WordPressのwp_cronの実行スケジュール雑過ぎワロタ

WordPressにwp_cronとかいう関数があるんで、おおデーモンになってくれて空気読んでくれるのかなとおもいきや、そんな訳がなかった。 処理がスケジューリングされていても、サイトにアクセスがなければ実行はされませんし、アクセスのあった時間が基準となる…

Contact Form 7 のテンプレートに独自のタグを入れてその内容をセットする方法

Contact Form 7を使っていて、チェックボックスのチェックの有無でメールに吐き出す内容を変える必要があるという要件がありました。というわけで、吐き出す内容を変えるものを適当なタグをつけてメールテンプレートに入れます。僕の場合は[_proxy]というタ…

WordPressの開発フローのベストプラクティスを探している件

WordPressのサイト開発を継続的に行う場合、色んな問題が付きまとってくる。え?FTPでバックアップ? それでもいいけどさ! 本体やプラグインのバージョンUP対応 WPは開発が盛んなため、結構な速度でコアのバージョンが上がっていく。この前3.8だったのに3.9…

WordPressを使った開発フローは何がええんやろ

WordPressの開発フローってなかなかこれっていうものが見つからん。環境構築だけでいえば今はVagrantが全盛ですので、この辺を使ったらいい。 Varying-Vagrant-Vagrants/VVV · GitHub VCCW - A WordPress development environment. でもvagrantだけ使うとか…

HTMLをひたすらechoするのは辛いからやめよう

プラグイン開発していて、管理画面に表示されるadd_menuっていうアクションがあるじゃないですか。で、メニューをクリックされた時に表示されるHTMLをPHPのソース内で書くのはすごく面倒いしstring連結なんかしたくないわけですよ。facebookで愚痴ってたら「…

WordPressのフィルターとアクションを復習する

弊社内で「WordPressでお知らせ投稿→そのままユーザーテーブルに載ってる顧客にHTMLメール配信」があれば最高だなという話になってしまい、プラグインを書いて実装しようとしています。というわけで、WPをHackするには絶対欠かせない機能であるフィルターと…

WordPressである特定のカテゴリ記事を一括でゴミ箱に移す

簡単にできます。SQL投げれば。 update wp_posts set post_status = 'trash' where id IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 20 ) term_taxonomy_idはwp_termsのterm_idと同じものを使って下さい。ただ、親カテゴリを…

TinyMce For 絵文字をIE11で使うと、絵文字の挿入位置が常に文頭になる件

表題の件で報告を受けた。MacのFirefox等で行うぶんには問題ないのだけれども、どうもIE11だとフォーカスの位置が取れないのか常に文頭になっていた。めんどくなったので・・・違う絵文字プラグインを使って逃げてしまった。その内まじめに追っかけるという…

WelcartでWebPayを組み込むためのステップを調査して疲れた件

現在調査中なんですが、結構厄介な感じです。 1. 管理画面にWebPayタブを追加し、非公開トークンを保存できる画面を作る。 プラグインフォルダ/includes/admin_settlement.phpを参考に追加。 2. トークンを保存できる処理を追加 プラグインフォルダ/classes/…

Welcart用に商品画像ファイルを品番に一括置換するPHPプログラム

Welcartはファイル名を品番にすれば、そのファイルを取得して画面に画像表示してくれます。複数ある時は枝番をつければ大丈夫。で、今度300個近い商品の画像を準備するので、以下の要件を満たすPHPプログラムを書きました。 ディレクトリ名を品番と合わせる …

WordPressで、あるカテゴリの記事の著者を一括変更したい

あるカテゴリの記事を管理者にしてたんですけど、元々は私の書いた記事だからこのカテゴリの記事の著者名を変えてくれみたいな話がありました。以下、SQLでの変更手順です。phpmyadmin等で実行して下さい。 変更したい著者のIDを取得 wordpressのユーザーテ…

Welcartの消費税計算から送料等を外したい

Welcartの代金計算は、デフォルトでは商品代金に送料や代引手数料を加算して計算されます。これを、消費税は商品代金だけに加算して、それに送料や代引手数料を足して合計を加算したい場合はこういうフックを掛けます。公式フォーラムに書いてあるんだけどね…

WordPressのログイン時発行Cookieの有効期間を確認する

ログインに成功するとCookieに対して自動ログイン可能なハッシュを発行してくれる。それがこのコード。

WordPressのカスタムフィールドを日付としてソートしたい

クライアント様より、お知らせの作成日時ではなく、そのお知らせに記載したイベントが開催される日を表示して、ソートして欲しいご希望がありました。というわけで、こんな感じで対応しました。WP3.8.1で動作確認済。 Advanced Custom Fieldsのインストール …

Welcartで特定のSKUに限りオプションが必要な場合の対処法

洋服の注文を請けるネットショップで、既成品の場合はサイズ指定してもらえればいいけれどもオーダーメイドの別注品を請けたいという要望があった。要はS/M/L・・・では足りない場合で、それ以上のサイズを求めている場合は別注で請けることも許可するという…

WordPressの下書きプレビューが出来ない時の解決策

パーマリンク設定が上手く出来ているのに、WordPressの下書きプレビューが出来ない時がある。 その時は、wp-config.phpの各種KEYの設定を見直そう。デフォルトだと動かないみたい。 WordPressの下書きプレビューが404になってしまうのを解決するに詳しく書い…

WordPressとかいう大正義のCMS

弊社のコーポレートサイトを来週にリニューアルするのですが、その時に出た要件がこちら。 ブログ形式でメンテ出来るサイトにしたい。 スマホにも対応できるようにしたい。 要はレスポンシブってことね。すげぇ荒く言うと。 トップページにはシャレオツな画…

WordPressで管理権限が一切ないユーザーを作りたい

弊社のコーポレイトサイトをWordPressでリニューアル作業中です。 その中で、「ある投稿カテゴリーの記事だけ、ログイン認証を付けたい」という要望がありました。要は、弊社のお取引様だけが閲覧できる記事を作って、その中で販促に関する情報を公開しよう…

WordPressをCMSとして使う

WordPressってブログ作るために使うんでしょって思っていた僕の為の備忘録。 前提として、CMSっぽく使う場合如何に関わらず、Wordpressのコア機能でどこまでカバーできるのかを判別して、カバーできない場合はプラグイン地獄にならない程度の利用にとどめて…