[WP]WordPressテンプレートカスタマイズ用小技メモ(3)

テンプレートカスタマイズするときに使えそうなソースをつらつら書き散らすよ!(その1その2
自作関数ネタが多いです。

METAタグのgeneratorを消す

デフォルトだとheadにwordpressが自動でgeneratorを追加しますが

<meta name="generator" content="WordPress 2.7" />

meta name=”generator”はセキュリティ的に入れない方がいいと言われてます。
これ入ってるとバージョンアップサボってるのもモロバレ。(ex:このブログ)

アクティブテーマのfunctions.phpに以下1行追加

remove_action('wp_head', 'wp_generator');

remove_action()関数は必要のない動作を一発で消す事が出来るので覚えとくと便利。

keyで指定したカスタムフィールドの値を取得する

プラグイン使わなくても一応出来るよ。ってことで。

functions.php

function getCustom($key,$id) {
	$custom = get_post_custom_values($key, $id);
	if(count($custom)!=1)
		return implode("<br />",$custom);
	else
		return $custom[0];
}

値が複数ある場合は改行でくっつけてから帰します。

テンプレートファイルのループ内

print getCustom("key",get_the_ID());

the_ID()使うならループ内、変数とかに入れておけばループ外でもいける。
直接テンプレートファイル内に関数の部分入れて処理しても良い。

続きを読む

[WP]TinyMCEのビジュアルリッチエディタにカスタムボタンを追加する

WordPressのビジュアルエディタに自作したボタンを追加する方法についてのメモです。
TinyMCEのプラグイン作成手順メモにもなっています。

ver2.5以下は確認してないのでどうだか分かりません。多分TinyMCEのバージョンが違うので動かないと思います。
ver2.7は動きました。
ver2.9も動きました。

TinyMCE自作ボタン
©Fugue Icons

サンプルとして▼こういうテーブルをボタン1発で追加出来るようにします。

Table Sample Caption
Name  
Address  
TEL  
FAX  
URL  

プラグインとかで記事のテンプレートを作っておくという手もあるけど、ボタン挿入の方が汎用的に使えるので楽です。
エディタへのテキスト挿入以外にもいろいろな事がやれます。

結構面倒くさいので初心者向きではありません。
あとついでにエディタ内のスタイル変更についても解説しています。

なお、この方法はTinyMCE Advancedの影響を受けません。

セレクトメニューについて追記

続きを読む

[WP]WordPressテンプレートカスタマイズ用小技メモ(2)

テンプレートカスタマイズに使えそうなソースをつらつらとまた書き散らす。その1はこちら
今回はテクニカルなものが多いかもしれない。

グローバルメニュー的なもの

ページとかカテゴリー単体にリンクしたい場合には、get_category_link()及びget_permalink()を使う。
引数はそれぞれカテゴリーIDとページIDです。

<ul id="glovalnavi">
	<li><a href="<?php echo get_option('home'); ?>" rel="index" title="<?php _e('Go to site top.'); ?>">HOME</a></li>
	<li><a href="<?php echo get_category_link(1);?> " rel="category" title="<?php _e('View all posts in Event information.'); ?>">イベント情報</a></li>
	<li><a href="<?php echo get_permalink(1); ?> " rel="page" title="<?php _e('Sample Page.'); ?>">ページ</a></li>	
</ul>

パンくずリンクぽいもの

single.phpとかにHOMEとカテゴリと記事タイトルのリンクを出すだけで作れます。
ループ内に以下のソースを入れる。

<p><a href="<?php bloginfo('home'); ?>" title="<?php _e('Home'); ?>"><?php _e('Home'); ?></a> &gt; <?php the_category(' | ') ?> &gt; <span><?php the_title(); ?></span></p>

もっと実用的にタイトルと連動させるならこの記事の関数が便利だと思う。

続きを読む

[XHTML]WebサイトのOOP

Webサイトはオブジェクトの集合体。
CSSもオブジェクト指向。

オブジェクトの集合なら、命名規則やデザインパターン作っておけば再利用はしやすくなる筈。
WebSiteでもOOP(Object Oriented Programming)的なこと出来る?
…となんとなく考えた事を適当に羅列してるメモです。まとまり皆無。思考ダダ漏れ注意。

Class

  1. Header -> #header
  2. Sidebar(Menu) -> #sidebar
  3. Contents -> #contents,#wrapper,#container
  4. Form ->#form,#contact
  5. Fotoer ->#footer

Method

  • List (UL,OL,DL) -> #menu,#navi,#navigation,#globalnavi
  • Headering Title (H1~H6) -> #page-title,#sitename,#content-title
  • Text Section -> div.post , div.section , div.entry
  • Buttons (input type=”button”,button tag, block style Ancher) -> #submit,#reset
  • Input (form elements)
  • Copyright (address) -> #copyright
  • Image (floating style, ancher style)
  • Table

Property

  • Inlines (strong,em,tt,code…etc)
  • Blocks (div,p,address,blockquote…etc)
  • String (plain text)

4BOXとか5BOXとかのレイアウトテンプレートは中身が空のクラス、つまりこんな状態です。

class Header {
}

続きを読む

Trac & XAMPP & Dreamweaver & Aptana & SVN

ローカルにTrac入れたりDreamweaverにSVNエクステンション入れたりしたメモ。
ついでにAptanaStudio1.2も入れてみた。(PC変えたから新規)

Tracのローカルインストール(windows)

Tracはメジャーかつフリーなプロジェクト管理ツール。
Trac?なんぞそれ→WordPressのTrac
タスク管理だけならxfy Plannerもよさげ(主に見た目が)だけど、
バージョン管理が便利だと思う。あとチケット機能も。
こういうのは自前で入れるよりGoogleCodeとかSourceForge.jpとか使う方が楽なので
公開しても問題ないものならサービス利用してもいい。

既にXAMPPがインストール済みでも後からTrackを入れることは出来た。
Tracのセルフインスコは果てしなく面倒くさそうなので迷わずTrac Lightningを選択する。

ダウンロード後、Trac Lightningのインストーラーを起動してインストールする。
完了したら再起動が必要になるので事前にXAMPP含め他のアプリは止めておくと良い。

続きを読む

SiteTemplate06: PhantomWhite

ちょっとテクニカルなレイアウトのWebサイトテンプレート。
個人サイト或いはブログ向けの2カラム固定幅レイアウト。色違いの黒もあります。

半透明の背景、PNG24のタイトル画像、オーバーフローによる擬似フレーム。
ページを開いた際に一時的にコンテンツを隠すカバーと、別ページにジャンプするときにダイアログ出すスクリプトが入れてあります。
フォントサイズ指定はYUIのやつ使ってます。
Divまみれなので変更はしづらいかもしれない。

SiteTemplate06

  • 2Columun 2BOX(irregular)
  • XML宣言あり
  • ドキュメントタイプ:XHTML 1.0 Transitional
  • 文字コード:UTF-8

続きを読む

SiteTemplate05: PhantomBlack

ちょっとテクニカルなレイアウトのWebサイトテンプレート。
個人サイト或いはブログ向けの2カラム固定幅レイアウト。色違いの白もあります。

半透明の背景、PNG24のタイトル画像、オーバーフローによる擬似フレーム。
ページを開いた際に一時的にコンテンツを隠すカバーと、別ページにジャンプするときにダイアログ出すスクリプトが入れてあります。
フォントサイズ指定はYUIのやつ使ってます。
Divまみれなので変更はしづらいかもしれない。

SiteTemplate05

  • 2Columun 2BOX(irregular)
  • XML宣言あり
  • ドキュメントタイプ:XHTML 1.0 Transitional
  • 文字コード:UTF-8

続きを読む

[js]Ajax.Requestと405 Method Not Allowed

405エラーは主に、POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返される。
さくらインターネット等、CGIやSSI等のダイナミックコンテンツにしかPOSTメソッドが容認されていない場合に、
AjaxでXMLHttpRequestメソッド使った時にタイプがPOSTだと405 Method Not Allowedになる。

CGIでも.htaccessにAddHandler cgi-script .cgi などが記述されておらず、
CGIとして設定されていない状態でPOSTで送ると同じエラーになる。

Apache1.3系は静的ファイルにPOSTが使えない。
Apache2系はPOSTもGETも同じ挙動。

解決策
XMLHttpRequestメソッドのタイプをPOSTからGETに変更

※.htaccessでAddHandler server-parsed .htmlとするのは良くない。

続きを読む

wordpress2.1.3から2.6.3にバージョンアップしてみたメモ

このブログの時のように5分では終わらなかったので、適当に作業メモを残すことにした。
2.1.3はMEの一番普及してるバージョン(だと思っている)だから使ってる人も多いのでは無かろうか。
私の場合はゲーム用ブログがそれで、幸いコアには手を入れてないものの、自作テーマとプラグインで結構弄ってある。

思い立ったが吉日。詳しいwordpressのアップグレード方法はCODEXに任せるとして、
とりあえずデータベースをエクスポートした。これは忘れちゃいけない。
プラグインとか使ってる場合はwordpressのとプラグインのテーブルを別にエクスポートする方がいい。
また、サイズが大きくなるとインポートで弾かれる可能性が高まるので、wordpressのテーブルそのものも分割エクスポートしといた方が何かと安全だったりもする。サイズの大きいテーブルは単体エクスポートがオススメ。
エクスポートの前にはテーブルの最適化をやっておく。

面倒臭がって無駄に大きなsqlファイルを作ったりすると、インポートで失敗して涙目になるので
上記のことは気をつけた方がいいな、と今書きながら思った。バックアップで手抜きするのは良くない。

続きを読む