PHP

WordPressでのパーマリンク指定

ページのスラッグを用いてURLを構成したい場合、記事のパーマリンクを指定しておく必要があるようだ。1. [設定]の[パーマリンク設定]にて、[カスタム構造]を選択して、 /%category%/%post_id%/ を入力。 2. 設定を保存すると、mod_rewriteの例が表示されるの…

wordpress管理画面のバージョン番号を非表示にする方法

ソースをみるとハードコーディングになっているようなのでスタイルで対処。 テーマ内、functions.phpに以下を記述 function remove_version_admin() { echo <<<_EOF <style type="text/css">#wp-version-message, #footer-upgrade { display: none; } _EOF; } add_action('admin_head', 'r</_eof>…

静的webページからwordpressに再構築する場合のスムーズな移行方法

すでに既存のwebページ(静的html)があり、同じドメイン名を使ってwordpressに移行する場合、テスト用の別サーバを用意してそこにwordpressを構築し、hostsファイルを切り替えて作成、確認を行っていた。 作成者側だけが作成、確認を行う場合はそれでもいいが…

WordPressでログインユーザ判定

ログインユーザにはページを見せ、ログインしていない人にはログイン画面を表示させる方法。 .... で、ユーザ自身に新規登録をさせたい場合 SNSの会員登録のようにユーザ自身に登録処理を行わせたい場合は、WordPressの機能で、 [設定]->[一般] にある、[…

WordPressのエディタの余計な機能(自動整形)を無効にするためのプラグイン

WordPressエディタで入力しているとhtmlエディタでもそうだが、pやbrを勝手につけたりすることがあり、煩わしいことがある。そんなときに、PS Disable Auto Formattingというプラグインがあるみたいだ。 http://wordpress.org/extend/plugins/ps-disable-aut…

MODX EvolutionのDittoCalの文字化け対策

MODX Evolution 1.0.7Jを構築して、カレンダー表示させたかったので、DittoCalをダウンロードしてinstallationの通りにスニペットを作成したが、UTF-8で構築しているのにも関わらず年、月の文字列が文字化けを起こしてしまう。http://forum.modx.jp/viewtopi…

apacheでPHPモジュールを切り替えて使う方法

apacheでPHP5.2でテストしたり、PHP5.3でテストしたりしたい場合がある。apache起動時にそれを切り替える方法。 PHPのインストールに関して コンパイルする際に、--prefixをそれぞれ変える。例えばphp5.2なら --prefix=/usr/local/php52 とし、php5.3なら --…

Apacheを止めないでPHPモジュールをバージョンアップさせる件

会社の同僚に教えてもらったのだが、Apacheを起動している状況でPHPをバージョンアップさせる場合、PHPのmake install時にapacheを停止させないでインストールする方法。 これはPHPだけでなく、Apacheモジュール全般に適用できるはず。なお、再起動(graceful…

WordPressのエディタでビジュアルとhtmlのタブが表示しない件

WordPressのエディタはビジュアルリッチエディタとHTMLをタブで切り替えることができるのだが、このタブが表示されない(HTMLエディタのみの)サイトがあることに気がついた。 そんな設定を故意に設定したことはないはずでどこで制御しているのかわからなかっ…

WordPressの記事一覧を外部プログラムから取り込む方法

wp-load.phpを読み込むとWordPressの関数を使えるのでこれを読み込むこと。 http://mypacecreator.net/blog/archives/983 例

wordpress内でのタイムゾーン

wordpressのfunctions.phpなどでdate()などを使う場合の備忘録。 functions.php内でdate()を使うとタイムゾーンが'UTC'となるようで、日本時間('Asia/Tokyo')と9時間ずれるようだ。そのため、PHP 5.1.0であれば、以下のようにすること。 date_default_timezo…

wordpressのcontact form 7でメールが送信されない件。

contact form 7(3.2.1 on wordpress 3.4.1)で、フォームからメールを送信しようとしたら、以下のメッセージが出てメールが送信できなくなっていた。 メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下…

WordPressのユーザレベルと資格(user_level and capabilities)

プラグイン開発で使うadd_options_page()やadd_submenu_page()で、user_level/capabilitiesを指定することでユーザ権限に応じて表示・非表示にできる。 試してみたところ、capabilitiesの指定でも可能だが、これはひとつのユーザ権限(Role)に対して複数保持…

WordPress get_posts(),setup_postdata()での注意事項

get_posts()で取得したデータをループさせてthe_title()などを使用する場合、setup_postdata()を使うが、これに指定する引数は"$post"でないと動かない。 0) : foreach ($myposts as $post) : setup_postdata($post); ?> <h3><a href="<?php the_permalink(); ?>"></a></h3>

wordpressでフッタが2度読み込まれている件

あるページをトップページとしている設定で、フッタにカウンタを設置していたら、カウンタが+=2ずつ増えていくことに気がついた。 FirefoxのプラグインのLive HTTP headersで見ていたら、どうやらヘッダ部にある以下のlink要素があるとこのページも読み込む…

PHP5.3でwordpressのevent-calendar pluginを動作させるには

wordpressのプラグインである、event-calendar(3.1.4)だが、PHP5.3にするとエラーになる。 以下のサイトの通り、参照渡しをやめると動作するらしい。 http://penguin.firetree.net/pipermail/eventcalendar/2009-August/005572.html ちなみにPHP5.3では、参…

PHPのために指定した配列用name属性をjavascriptで扱うには

PHP側で配列として処理するためにname属性を'foo'のように指定した場合、この属性をjavascriptで扱う場合には以下のように、document.form.elements['foo']とする必要がある。 document.form.foo は当然、 undefined であるし、 document.form.foo[] も構文…

PHPで全角ひらがなカタカナがあるかを判定

PHP

UTF-8のコードにおいて、全角のひらがな、カタカナ、句読点(、。)のどれかが1文字以上あれば真。 $a = array( 'The quick brown fox jumps over the lazy dog.', 'The quick brown fox jumps over the lazy dog. !?#$%&', 'The quick brown fox jumps over t…

WordPressで、あるユーザ権限(購読者)だけパスワード変更できないようにするには

本当にこんな運用をするかどうかは別にして、あるユーザ権限(購読者)だけパスワードを変更させないようにすることができる。 http://ja.forums.wordpress.org/topic/4970 の最後にあるコードをテンプレート中のfunctions.phpを入れてみたのだが、3.2.1 では…

wordpressカレンダーTips(月別でカテゴリ別など)

基本の月別アーカイブは、 wp_get_archives() http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_get_archives プラグインで月別、カテゴリ別を実現 Archives for a category WordPress pluginか…

wordpressの記事表示でカテゴリによって表示を変えたい場合

wordpressでのカテゴリ一覧ページのテンプレートはcategory.phpでカテゴリごとにページの表示を変えたい場合はcategory-N.phpというようにカテゴリ番号を付加したテンプレートを用意するだけでよかったが、実際の記事表示でカテゴリによって表示を変えたい場…

メールアドレス正規表現

メールアドレスの完璧な正規表現はないのだが、以下のもので「おおまか」に表現できるはず。 /^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/ 正規表現オプション"i"を付けられる言語であれば、"A-Z"の表記はいらないはず。元ネタは以下。 http://befi…

wordpressでバージョンアップの確認を非表示にするには

WordPress 3.2が利用可能です!更新してください。 というバージョンアップに関する表示があるのだがこれを非表示にする方法。以下のコードをテーマディレクトリのfunctions.phpに記述するといいらしい。 add_filter( 'pre_site_transient_update_core', '__…

PHPのSessionをSecureに

PHP

PHPのセッションをSSLのみに限定する方法。 http://bba-ltom.blogspot.com/2008/07/php.html // セッションはCookieのみを使用 ini_set('session.use_only_cookies', 1); // HTTPS通信時にはCookieにセキュア属性をつける if ($_SERVER['SERVER_PORT'] == 44…

PHP/GD2でのGIF/PNG画像の透過を保持したままのリサイズ

PHP

PHP/GD2で画像リサイズを行う際、透過の部分が黒くなってしまう。 http://mediumexposure.com/smart-image-resizing-while-preserving-transparency-php-and-gd-library/ https://github.com/maxim/smart_resize_image にあるものを使えば透過も保持される。…

WordPressのメールフォーム(contact form 7)でメッセージ表示位置

http://ja.forums.wordpress.org/topic/1822 に書いてあるように、 <div class="wpcf7-response-output"></div> を挿入しても環境によってはjavascriptのconflictのためうまく表示されない場合があったりする。 なんとかならないものかと思っていたが、 http://centlize.jp/archives/1877 にあるとおり…

WordPressのthe_content()について。

the_content()で内容を呼び出す際にはthe_post()を呼び出すこと。 例えばテンプレート内で、get_posts()でループしている場合に使用すること。 the_post()がない場合、the_title()などは表示されるけど、the_content()だけ表示されないのでハマった。 <h2></h2>

WordPressでの検索における記事タイプの指定

WordPressでカテゴリ指定(cat=N)の検索をしても、記事、ページ両方検索してしまうようだ。 wp-includes/query.php の get_posts() 部分に、 if ( !isset($q['post_type']) ) { if ( $this->is_search ) $q['post_type'] = 'any'; else $q['post_type'] = '';…

WordPressでquery_posts()により表示件数を変えたときのページ送りについて

wp-pagenaviプラグインを使用し、paginationしていたが、該当テンプレートでquery_posts()を使って表示件数を変更すると前ページ、次ページなどページ送りが狂っているようだ。 query_posts($query_string . '&posts_per_page=5'); if (have_posts()) : whil…

wordpressで現在のカテゴリを取得

header.phpにてカテゴリごとに制御したい場合、カテゴリ名やIDを取得して制御したかったのだが、ちょっとハマったので備忘録。 list($c) = get_the_category(); print($c->cat_name . '(' . $c->cat_ID . ')'); get_the_category()ではindex=0にカテゴリのオ…