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にカテゴリのオ…

wordpressで独自のqueryから通常のqueryを生成する方法

独自のクエリ変数から標準クエリを生成して実行させる。 カテゴリ指定の検索としてcatというクエリがあり、cat=1,3,5のように複数指定が可能だが、その値を自分で選択させたい場合にこの方法が有効かと思われる。 function search_multi_category() { global…

PHPのXML_Parser_Simpleで要素名を小文字にする方法

PHP

XML_Parser_Simple()を呼ぶ前にfoldingをFalseに設定する。 XML/Parser.phpあたりで、xml_parse_set_option()を呼び出し、XML_OPTION_CASE_FOLDINGに対して$this->foldingを設定している。この値がデフォルトでTrueなので大文字になる。 class myParser exte…

SoyCMSインストールメモ

フリーのCMSで、現在Webサイトをもっている人が移行しやすいようなシステムになっているようだ。 SQLiteだと(もちろんPHPにSQLiteが組み込まれていればだが)別途データベースシステムを必要としないのも利点。 SoyCMSのインストール PHP5.2の場合は、 SQLite…

wordpressの引っ越し

現サーバの wordpress から 新サーバの wordpress への引っ越し。現サーバでは[ツール]->[エクスポート]で該当ユーザの記事をエクスポートする。 新サーバでの設定 1. wordpressを設置 2. 以下を実行 $ cp -ip wp-config-sample.php wp-config.php $ view wp…

apacheでのphp設定

php.iniに書くべき内容をapacheのコンフィグレーションで設定する場合の書き方の備忘録。 <Directory "/home/foo/public_html"> # <IfModule sapi_apache2.c> <IfModule mod_php5.c> php_value memory_limit 48M </IfModule> </Directory>sapi_apache2.cはPHP4のとき(だったはず)。PHP5ではmod_php5.cでOKのようだ。 booleanの値は php_flag で On/Offする。

wordpress テンプレート関連tips

home.php [設定]の[表示設定]において、[最新の投稿]にしているときに home.php というファイルがあるとトップページはこのテンプレートを使う。 ダイナミックウィジェット [外観]の[ウィジェット]というのがある。[サイドバー1]に表示させたいウィジェット…

PHPの表示をファイルに出力

PHP

PHPで表示しているものをファイルに出力する例。 出力バッファを設定 出力 出力バッファの中身を変数にセット 出力バッファをクリア ファイルに出力 <html> <head> <title>Test<title> </head> <body> <h1>テスト</h1> <p>これはテストです。</p> </body> </html>

PHPのSimpleXMLにてCDATAがあるXMLをロードする場合について

PHP

$xml = simplexml_load_string($s, 'SimpleXMLElement', LIBXML_NOCDATA); とするとインスタンス内でCDATAを文字列として扱ってくれているが、SimpleXMLElement#asXML()で出力するとentity変換してくれる。CDATAでなく文字列として扱ってくれるためだろう。 …

PHPでSimpleXMLでCDATAを追加

PHP

SimpleXMLはPHP5で標準のXMLを扱うクラス。SimpleXMLElement#addChild()で要素を追加するが、CDATAを追加したい場合は標準ではできないようだ。 そこで、PHPのマニュアル中の例(以下参照)を参考に動作を確認。 http://www.php.net/manual/ja/simplexmlelemen…

日本語(マルチバイト)が含まれるファイル名のbasename()

PHP

日本語(マルチバイト)が含まれているときにbasename()すると先頭の日本語を取り除いてしまうようだ(PHP 5.2.6 on apache 2.0.63)。 $s = basename('日本語test.txt'); // $s = 'test.txt' $s = basename('日本語testです.txt'); // $s = 'testです.txt' http…

tinyMCEで画像挿入の際に一覧表示させるためのPHPスクリプト

tinyMCEでは画像を挿入することができるが、そのダイアログで一覧を表示させるために、tinyMCEの呼び出しで、 external_image_list_url : "tinyMCEImageList.php" /* index.html からの相対パスならOK */ のように指定する必要がある。そこで、 http://wiki.…

PhpDocumentorのインストールと文字コード変更

PHP

PHP5にしてからPhpDocumentorをインストールしていなかったのでインストールしてみた。 pearを使ってインストール pearを使ってインストールする。 もしかすると使用メモリが足りない場合があるかもしれない。その場合はmemory_limitを変更すること。参考は…

eccube 2.3.4 のインストール

以下のマニュアルサイトのようにしてもうまくいかなかったのでメモ。 http://wiki.ec-cube.net/index.php?EC-CUBE%A1%CA2%A1%A5x%B7%CF%A1%CB また、PHPにzlibを組み込んでいて、設定にて、 zlib.output_compression On の場合、installプログラムにFirefox…

wordpressでのauthor(著者)ページ一覧

author(著者)のページを一覧で出力することができるようだ。そんなのあるの知らなかった。 テンプレートはauthor.phpでカスタマイズ可能らしいが、カテゴリのようにID指定でそれぞれ個別に作成するのは不可能そう。 http://wpdocs.sourceforge.jp/%E3%83%86%…

wordpressの予約投稿の失敗について

wordpress2.7にて予約投稿を行うと、編集一覧に 予約投稿の失敗 と出て予約投稿できない。googleで調べてみると、 http://brokentoaster.info/wordpress/2008/12/26/20_35_06/ があり、wp-includes/cron.php を 2.6のものに戻すとうまく行くらしい。 また、 …

WordpressでのカテゴリごとのRSS feed

http://flyingmango.jp/web/wordpress_categorized_feed.html の情報より。 http://www.miyagino.net/archives/category/readbooks というカテゴリがあったら、こいつのRSS2.0は http://www.miyagino.net/archives/category/readbooks/feed もしくは、 http:…

Wordpressでのメディア追加でのwarning

記事の投稿時のメディア追加時に、 Warning: call_user_func_array() [function.call-user-func-array]: First argumented is expected to be a valid callback, 'media_admin_css' was given in /home/foo/public_html/wp-includes/plugin.php on line 311 …

Wordpress 2.7 での wp-amazon プラグイン

Wordpressを2.7にアップグレードしたところ、使用していたwp-amazonプラグインが動作しなくなってしまった。調べていたら、 http://www.whowants.net/wp/?p=827 http://netafull.net/aff/027747.html を見つけた。 こちらでも、wp-amazonのプラグインを停止…

Wordpressのカテゴリ用テンプレート

Wordpressにおいて、あるカテゴリを表示する場合は、category.phpを使用するとのこと。 あるカテゴリIDだけの場合は、category-"カテゴリID".phpを使用するのとのこと。 http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E4%BD%9C%E6%88%…

Wordpressを2.7にアップグレードした

Wordpressを2.6.5から2.7にアップグレードしてみたら、管理画面のインタフェイスが変わっていたので、ちょっと驚いた。 http://ja.wordpress.org/2008/12/14/wordpress-27-ja/ 使いやすくなっている感じではあります。