PHP
aタグで囲っているコンテンツの中に、管理画面のWYSIWYGエディターなどでユーザーが入力したHTMLのを出力する時、出力するHTMLの中にaタグが含まれていると、リンクが壊れてしまいます。 [参考] なので、aタグだけを除去して出力したい! PHPではstrip_tags…
WordPressの関数などで、wp_get_attachment_image_srcなど、存在すれば配列が、存在しない時はfalseが返ってくようなものがあります。このような関数を使っている所で、返ってきた値の有無を確認するのにcount()を使っていると予期しないバグを発生させてし…
PHPのPDOで複数のidのデータをまとめて取ってくるとかで WHERE IN を使おうとしてハマったのでメモ。 配列のまま渡しても取得できない。 prepare($sql); $stmt->bindValue(':ids', $ids, PDO::PARAM_INT); $stmt->execute(); $res = $stmt->fetchAll(); var_…
PHPでデバッグやフレームワークで渡される配列を展開してログに吐きたい時のメモ。 要するにRubyとかのArray.to_sみたいな感じで展開してログに吐き出したいわけです。 PHPでは配列をそのままerror_logに渡しても上手く書き出せません。
例えば通常の投稿(post)の個別記事か判定したいような時。 is_single() ではpost_typeの判別はできない。
WordPressのテンプレートなどで環境定数があれば、何かを出力したいとかの時。 isset() を使うとエラーになる // GoogleAnalytics のスクリプトを表示 ↓ PHP Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expr…
PHPのバージョンが5.4のPCがあったので、メインの開発で使用していたバージョンと同じ5.6系にHomebrewでアップデートした時のメモ。 Homebrewをアップデートする $ brew update 「Error: Formulae found in multiple taps」というエラーが出た Error: Formul…
WordPressでサイトを良く作っていた頃にDBからガッツリデータを取得して作成したパーツをキャッシュ化したりするのにCache_Liteを使っていました。さすがにCache_Liteはもう古いよな〜と思っていてちょうどPHPでキャッシュを使いたい案件に当たったのでキャ…
URLを指定してGETでデータが返ってくるようなWebAPIを叩くのにfile_get_contents()を使ってみました。(もっと良い方法があれば教えて下さい。) で、APIからデータは取得できたのですが、例えばAPI叩きすぎとかでAPIからエラーを返されることがあります。 そ…
前もって現在の値を取得しなくても、 UPDATEのSQLのSET節でインクリメントなら カラム名 = カラム名 + 1、デクリメントなら カラム名 = カラム名 - 1という形で記述すれば変更できる。 prepare($sql); // 略 特定のインクリメントに限らず特定の数の足し引き…
すごい昔に作られたサイトの改修をしていました。WordPress製だったので、丸っとデータを貰ってローカル環境で表示させてみた所、下記のようなワーニングとエラーが表示されてしまいました。 Warning: include_once(PEAR.php): failed to open stream: No su…
以前、pre_get_posts内で独自の値を$wp_queryにセットしてorderbyを複数にして、それぞれ別のorderにする方法を書いていました。 最近検索していたら、実はもっと簡単に実装できたことが判明しました。 orderbyに配列で条件と並べ方を渡すことができた! 以…
Controlllerに下記を記述する loadComponent('Csrf'); } View Template内で $this->Form->create() でフォームを作ると自動的に<input type="hidden" name="_csrfToken" value="50cb5cab62f62ccc04b2ced3f789e977204fd900">のようなインプットタグが作られる。 Cross Site Req…
例えばController Articles、action editで/articles/edit/{article_id}の様なURLが作りたい時 1. Htmlヘルパーを使う Html->link('編集', [ 'controller' => 'Articles', 'action' => 'add', $article_id ], ['class' => 'btn']); <a href="/articles/add/1" class="btn">編集</a>というaタグが出力さ…
Mac OS X Yosemite環境・Homebrewでcomposerコマンドをインストールしています。 CakePHPをComposerでインストール CakePHPをComposerでインストールできるようだったので公式ドキュメントを元にターミナルを起動して下記コマンドで インストールしました。 …
例えばWordPressのプラグインなんかを作っていて、CSSで変数を使いたいなんて時があります。 読み込みをPHPファイルにする。 まずはCSSファイルの拡張子を.phpにして、CSSを読み込ませていた部分をPHPのファイルに変更します。 HTMLならこんな感じ。 <link rel="stylesheet" type="text/css" href="sample.php" /> WordPr</link>…
以前にWordPressの投稿をmenu_orderの順番に並べて表示させる方法を書いていました。 一覧表示・管理画面の一覧をmenu_order順にするまでは良かったのですが、個別ページ(single.php)などで前後の投稿へのリンク(previous_post_link, next_post_link)の表示…
cakePHPを触ってみようかと思いインストールしたらcomposer.jsonがあったので折角なので今まで見ぬふりしてきたcomposerそろそろやってみようと思い立ったのでメモ Composer をHomebrewでインストールする $ brew install composer DebugKitをcomposerに追加…
ちょっと古い記事なのですが、LIGさんの解決!WordPress投稿画面のカテゴリーをカスタマイズする方法という記事を参考に投稿のカテゴリーを複数選択できないようにラジオボタンに変更しました。 記事に掲載されているコードの通りに行うことでカテゴリー選択…
※ もっと簡単に実装できる方法がありました! 追記 2015 12/25 前回WordPressの投稿の並び替え条件(orderby)を複数にする方法を書きました。 しかし、この方法ではorderbyを複数にすることはできましたが、それぞれの条件で並べ方(order)を指定することはで…
WordPressでも内部的に使われてるらしいPHPMailerさん便利なのでちょくちょく使っているのですが、メーラーによっては日本語で長い文章をメールのタイトルにすると文章の途中が文字化けしてしまっていました。 てっきりメーラーの仕様なんだと思っていたので…
クラス内の関数で処理をしてエラーがあればExceptionでthowして呼び出し元でエラーを表示させようとしていた所次のようなエラーが出てしまいました。 Fatal error: Uncaught exception 'Exception' with message ... エラーになったコード
既存のプロジェクトに途中参加した際の出来事です。 新しいカテゴリーのページを追加したいということでカスタム投稿タイプを作成したのですが、既存のページのレイアウトが変わってしまっていると連絡をもらってしまいました。調べた所このプロジェクトでは…
固定ページにサブクエリを使って投稿を表示させ、WP-PageNaviプラグインでページ送りを表示させる方法のめも。 固定ページのテンプレートにただプラグインを表示させるコードif(function_exists('wp_pagenavi')){wp_pagenavi();}を書いてもナビゲーションは…
is_archive()とかの分岐をカスタム投稿タイプでしたい時の書き方 アーカイブページ is_post_type_archive( $post_type ) を使う
コードベースでカスタムフィールドが作れるWordPressのプラグイン「Custom Metaboxes and Fields for WordPress」が超便利なので使っています。 ▼ 以前の記事 ▼ textareaやcheckboxなど色々なフィールドがコードベースで作ることができるのですが、カスタム…
WP Social Bookmarking Lightは管理画面から表示させたいソーシャルブックマークを選ぶだけで簡単にショーシャルブックマークのボタンを設置できるWordPressのプラグインです。 WP Social Bookmarking Light 簡単に使えるように管理画面の設定でブックマーク…
PHPでCache_Liteでキャッシュを保存していた時にキャッシュ自体は保存できているのに、Cache_Lite->getしてもfalseになりキャッシュが上手く機能しなくてハマッたメモ。 Twitterからタイムラインを取得して返すAPIを作っていました。
PHPでnヶ月後の月末を取得したい場合、(n+1)ヶ月後の1日を取得して1日引けばOKというのをよく見かけるので、1年後なら13ヶ月後の1日を取得して...と思いコードを書いていました。
PHPのPDOでWHEREの検索条件をnullにしてsqlを発行したいと思い下記のようなSQLを作ってみました。 SELECT * FROM {$TABLE} WHERE {$COLUMN} = null; 残念ながらこれだと上手く取得できませんでした。 nullを検索条件にする時はis nullを使うと良いようです。…