タグ:WordPress
カスタムフィールドの値が空だと、meta_queryの条件に引っかからない【WordPress】
バージョンによるバグらしいけど、一応メモ。
「カスタムフィールドテンプレート」で
[test_field]
type=checkbox
value=true
のようなフィールドを追加し、次にテンプレートのquery_postsで
$query = array( array( 'key' => 'test_field', 'value' => 'true', 'compare' => '!=', 'type' => 'CHAR' ) ) );
こんな感じの条件文(つまりtest_filedにチェックが入ってない場合)を書いたところ、一向にヒットしませんでした。
もちろん、チェックが入っていない記事は存在します。
逆に
$query = array( array( 'key' => 'test_field', 'value' => 'true', 'compare' => '=', 'type' => 'CHAR' ) ) );
だと、チェックが入っている記事がちゃんと表示されました。
どうもvalueが空状態だと条件にヒットしなくなるバグが3.1のころにあったみたいです。
それは3.2で正常に戻ったそうなんですが、自分が使っているのは3.4.2・・・
バグ復活といったところでしょうか。
解決方法につきましては、以下のサイトで紹介されておりました。
WordPress3.1系:meta_queryでvalueが空の時の対処法 | ライ麦畑でつかまえられて、思わず出たオナラが案外フローラルだった感動を貴方にも。
他にもラジオボタンやプルダウンにして、絶対に値が入るようにするなどの方法を取るという手もあります。(自分はソースを変えるのが面倒だったので、この方法で回避しました。)
nandani | 2012年12月18日 | コメント(0) | トラックバック(0) | CMS関連
【WordPressメモ】ブログ記事IDからカテゴリー(タクソノミー)情報を取得する
よく使用するけど、よく忘れてしまうやり方のメモ。
ブログ記事IDから、そのブログ記事が所属するカテゴリーの情報を取得する方法です。
通常のカテゴリーならば
$get_the_category = get_the_category("ブログ記事ID");
でOKです。
カスタムタクソノミーの場合は
$get_the_terms = get_the_terms("ブログ記事ID", "タクソノミー名");
となります。
最近はよくカスタムタクソノミーを使うようになったので、これを呼び出す方法を忘れてしまうんですよね~。
参考サイト
nandani | 2012年12月13日 | コメント(0) | トラックバック(1) | CMS関連
共有SSL(共用SSL)でContact Form 7
共有SSL(共用SSL)が安全かどうかは置いておいて、とりあえず実現させなければならない場合がある。
そんな場合の対処法です。
まずは
【WordPress】共有SSLでプラグインContact Form 7を運用する方法
を参考に、Contact Form 7の一部を修正します。
次に、プラグイン「WordPress HTTPS」を追加し、設定画面で
- 「SSL Host」に共有SSLのベースURLを入力。
https://secure***.sakura.ne.jp/www.nandani.sakura.ne.jp
というように「共有SSL用のURL/ドメイン」の場合や
https://www.nandani.sakura.ne.jp
の「https://初期ドメイン」の場合など、このあたりはサーバによります。 - 「Force SSL Exclusively」にチェック
と設定します。
最後にお問い合わせフォームを設置している投稿(or固定ページ)の編集画面にて「Secure post」にチェックを入れます。
これで共有SSLでもContact Form 7が利用できるようになりました。
ただ、こちらの方法は割と強引に共有SSLに対応させているので、適応させる場合は自己責任でお願いします。
nandani | 2012年09月18日 | コメント(0) | トラックバック(0) | CMS関連
WordPressでページネイション
このプログラムは、コリスさんのサイトにある「WordPressにプラグイン無しでページネーションを設置する方法」を少し改造したものです。
nandani | 2012年09月04日 | コメント(0) | トラックバック(1) | CMS関連 | PHP関連
マルチサイト化したWordPressのサーバ移転手順
自分用の作業メモなので思いっきりざっくりとした説明。
ここではサーバ移転とともに、ドメイン(または階層)も代わることを前提にしています。
また、以下の説明は、移転後の旧サーバは利用しないこと前提のメモです。テスト用に残しておきたい場合などはバックアップから元に戻す作業などが必要となりますので注意してください。
nandani | 2012年09月01日 | コメント(0) | トラックバック(0) | CMS関連 | サーバー関連
カスタム投稿(カスタムポスト)ごとにカテゴリーを設定する【WordPress】
今回使用しているプラグインは「Custom Post Type UI」です。簡単にカスタム投稿(カスタムポスト)を作れて非常に便利なプラグインです。
カスタム分類(カスタムタクソノミー)ガン無視で作っていたので、カスタム投稿(カスタムポスト)ごとにどうやってカテゴリーを作るんだろう?出来ないのかな?なんて数時間悩んでしまったのでメモ。
nandani | 2012年07月14日 | コメント(0) | トラックバック(0) | CMS関連
WordPressのサイトマップを作る【プラグインなし】
WordPressのサイトマップといえば「Sitemap Generator」プラグインが有名でいつもお世話になってますが、今回はプラグインなしで作ってみることにしました。
早速ですが、出来上がったものがこちら。
nandani | 2012年05月16日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連 | WEB関連全般
Contact Form 7のメッセージの表示位置【WordPress】
ちょっとつまったのでメモ。
WordPressには簡単にメールフォームを作れる「Contact Form7」なる便利なプラグインがあるんですが、エラーメッセージや送信完了メッセージの表示位置がおかしい。
どこに表示されるかというと、デフォルトでは送信ボタンの直下に表示されます。
できればフォームの一番上に表示したい!
ということで、どうにかする方法を探していたら、こんな記事を見つけました。
Contact form7 送信後に現れるメッセージを最下部以外に表示させる
Contact Form7の編集画面にて、[response]を任意の場所に記述すると、そこにメッセージが表示されるようになります。
例)
nandani | 2011年05月20日 | コメント(0) | トラックバック(0) | CMS関連
Quick Commentsとjqueryとの併用の注意点
jqueryを利用して、Wordpressでページ遷移なしにコメントを投稿できるプラグイン「Quick Comments」(作成者:「をかもと」さん)
使用するにあたり、いくつか注意点があります。もしこれを使用しているのにうまく動かない場合は、こちらの「Quick Comments FAQ」をご覧ください。
なお、FAQには書かれていませんが、Quick Commentsとは別にheader.phpでjqueryを呼び出している場合にも正常に動作しなくなる場合があります。
その時は、jqueryの記述を取り除くか、「wp_head()」の前にjqueryを呼び出してください。
例)
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery-1.4.2.min.js"></script>
<?php wp_head(); ?>
本来、Quick Commentsでjqueryを呼び出しているため、別途jqueryを設ける必要はないはずなのですが、独自に作成したスクリプトが動かなくなるケースもあります。その場合に上記の方法で対処してください。
今回参考にさせていただいたサイト
WordPress Plugins/JSeries:該当記事「Quick Comments (コメント投稿 Ajax 化)」「Quick Comments FAQ」
nandani | 2010年08月10日 | コメント(0) | トラックバック(0) | CMS関連
WordPressから直接Googleマップを設定できるプラグイン
Google Maps Anywhere」を使用すると、WordPressの記事入力フォームから直接Googleマップの地図にピンマーク(所在地マーク)を付けることができます。(ただしGoogleマップAPIが必要)
ダウンロードサイト:「WordPress Plugins/JSeries」さんのサイト。
マイマップやストリートビューにも対応。ただ上記で紹介したダウンロードページにはマイマップのやり方が書かれていませんでした。マイマップのやり方についてはこちらのページで紹介されています。
「Odysseygate.com」さんのサイト
※注意点
「Odysseygate.com」さんのサイトで紹介されていたやり方では「/wp-content/uploads/hoge.kml」という風に、「ルートからのパスを記述する」方法で説明されていました。しかし自分がテストしたサーバ(ヘテムルサーバ)ではなぜかうまくいかず、「httpから始まるURLパス」を記述することで成功しました。サーバによって設定方法が変わる可能性があるのでご注意ください。
なお、ここでいう「マイマップを使用できる」というのは、あくまで「予め作成されたマイマップを読み込める」というものです。WordPressの入力フォームから設定したピンマークがマイマップにも反映されるわけではないのでご注意ください。
今回参考にさせていただいたサイト
nandani | 2010年07月27日 | コメント(0) | トラックバック(1) | API関連 | CMS関連