CMS関連

カスタムフィールドの値が空だと、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のサーバ移転手順

自分用の作業メモなので思いっきりざっくりとした説明。

ここではサーバ移転とともに、ドメイン(または階層)も代わることを前提にしています。

また、以下の説明は、移転後の旧サーバは利用しないこと前提のメモです。テスト用に残しておきたい場合などはバックアップから元に戻す作業などが必要となりますので注意してください。

(さらに…)

カスタムポスト(カスタム投稿)のアーカイブページを作る際の注意点

メモ。

カスタムポストを作る際、自分は良くプラグインの「Custom Post Type UI」を利用しています。

先日、いつものようにカスタムポストを生成したのですが、なぜかアーカイブページが表示できない。

そのときは「news」という投稿タイプ名のカスタムポストを作成し、

http://(ドメイン)/news

でアクセスしたのですが、Error404となってしまいました。

(さらに…)

nandani | 2012年09月01日 | コメント(0) | トラックバック(0) | CMS関連

WordPressのパーマリンクでindex.phpが勝手に挿入される。

かなり久しぶりにこの現象になったのでメモ。

パーマリンクの「カスタム構造」にて、なぜか頭にindex.phpが勝手に入る現象が発生。

(さらに…)

nandani | 2012年08月23日 | コメント(0) | トラックバック(1) | CMS関連

マルチサイト化するときはファイルアップロードサイズに注意【WordPress】

ある案件で、Wordpressのアップロードサイズの上限が1MBになっているからなんとかしてくれという依頼がありました。

サーバのphp.iniで絞られているだけだろうと思ったんですが、

  • upload_max_filesize
  • post_max_size
  • memory_limit

はすべて100MB超えている・・・

これまでWordpressでサイズ上限を設定した記憶がないし、php.iniの設定に従うはずなんだけどな~なんて思ってたら、意外なところにトラップがありました。

つまり、マルチサイト化。

WordPressでマルチサイト化すると「サイトネットワーク管理者>設定」の中にある「アップロード設定」でアップロードサイズの上限が制限できる(される)とのこと。

参考サイト:WordPress 3.1 「アップロードファイルの設定」 - STAFF_01 [KYS-LAB]

そのデフォルトサイズ、実に1500KB。
少ねぇ!

とりあえず、「アップロードファイルの最大サイズ」を30000にしたのですが、結果はなぜか1MBから2MBに変わっただけ・・・

このような場合はさらに1手間必要です。

php.iniをウェブ領域においても有効になるサーバの場合は、

upload_max_filesize = 32M
post_max_size = 32M
memory_limit = 32M

と記述したphp.iniを、Wordpressの設置場所にアップしましょう。

参考サイト:WordPressでファイルアップロードサイズの上限値を増やす方法 | LAGRANGE BLOG | iPhoneアプリ,iPhoneゲーム攻略掲載web

(しかし大本のphp.iniでは、すべて100MB以上で設定されているはずなのに、なぜここで2MBの壁が発生するのか謎・・・)

思わぬトラップにかかった気がしましたが、しかしマルチサイト化の使い道を考えると当たり前な機能なのかな~。
1人または1団体がすべてのサイトを管理しているのならともかく、複数人・複数団体がそれぞれのサイトを管理していると考えると、Wordpress側でアップロードを制限できるっていうのは便利なのかも。

nandani | 2012年07月19日 | コメント(0) | トラックバック(1) | CMS関連

カスタム投稿(カスタムポスト)ごとにカテゴリーを設定する【WordPress】

今回使用しているプラグインは「Custom Post Type UI」です。簡単にカスタム投稿(カスタムポスト)を作れて非常に便利なプラグインです。

カスタム分類(カスタムタクソノミー)ガン無視で作っていたので、カスタム投稿(カスタムポスト)ごとにどうやってカテゴリーを作るんだろう?出来ないのかな?なんて数時間悩んでしまったのでメモ。

(さらに…)

nandani | 2012年07月14日 | コメント(0) | トラックバック(0) | CMS関連

get_pageの注意事項【WordPress】

WordPressにて固定ページのデータを取得できる関数「get_page」

これを使おうとしてやたらつまったのでメモ。

取得する際、下記の用に記述したところ

$get_page = get_page('22');

以下のようなエラーが出てしまいました。

Fatal error: Only variables can be passed by reference in プログラムのパス on line xx

私的マニュアルと同じように書いてるのになぁ、と思い(修正していただきました)エラーコードで調べてみると、直接IDを指定しているのがまずいみたい。(関数リファレンス/get post - WordPress Codex 日本語版

$page_id = '22';
$get_page = get_page($page_id);

と変更したところ正常に動作しました。

nandani | 2012年06月19日 | コメント(3) | トラックバック(0) | CMS関連

Copyright(c) 2010 - 2017 ダリの雑記