スポンサーサイト

--/--/-- (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリー: スポンサー広告

大抵のホームページには、お問い合せフォームがあると思います。これをWordPressに組み込んでみます。

WordPressには、WP-Contactというプラグインがありますが、確認ページがでなかったり、項目の追加が難しそうなので使いません。

PAGEのテンプレートをメールフォームとして、新規に作ります。

contact.phpというファイルを作り、PAGEのテンプレートとします。


<?php
/*
Template Name: Contact
*/

get_header();

// ここにメールフォームのスクリプトを書く

get_footer();
?>

このテンプレートを使って、「お問い合せ」というPAGEを作ります。

テンプレート内に全ての処理を書いてもいいですが、"入力","確認","完了"とファイルを別々にして読み込ませる方がいいでしょう。

注意する点として、WordPressで使用している変数がありますのでかぶらないようにしてください。また、nameやpといったクエリを与えるとWordPressの誤動作を招きますので、"f_"のような接頭語を付けた上で、input要素のname属性等に使って下さい。

この点に注意すれば、簡単なフレームワークなら組み込むことも出来ます。当然mod_rewriteを使ったURLルーティングの機能は使えません。

スポンサーサイト

まず、「ニュース」というカテゴリを作成します。作成するとカテゴリIDが自動的につきます。(ここでは例としてカテゴリIDを"2"とします。)

つぎに、テンプレートのhome.phpを編集します。ニュースを表示させたい箇所に以下のコードを書きます。


<ul>
<?php
$posts = get_posts("numberposts=5&category=2&orderby=post_date");
foreach ($posts as $post):
setup_postdata($post);
?>
<li><?php the_time('Y/m/d') ?><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
<?php endforeach; ?>
</ul>


この例では、ニュースを新しいものから5件表示します。

the_date()でなくthe_time()を使っている理由は、the_date()の場合、同じ日付の記事が存在するとき、最初の記事にしか日付が表示されないためです。

the_time()の引数は、PHPのdate()関数と同じになります。

WordPressの基本構造

2007/04/26 (Thu)

主要ページ

WordPressには、5種類のページがあります。

メインページ
サイトのトップページ (http://www.example.com/blog/)
シングルページ
記事毎のページ (http://www.example.com/blog/?p=1)
カテゴリーページ
カテゴリ毎の一覧ページ (http://www.example.com/blog/?cat=1)
日付ページ
投稿日で分けた一覧ページ (http://www.example.com/blog/?m=200704)
PAGE
時系列に依存しない独立したページ (http://www.example.com/blog/?page_id=1)

WordPressをCMS(コンテンツマネージメントシステム)として使う場合、PAGEが特に重要になってきます。

各ページには、それぞれテンプレートが用意されており、それぞれをカスタマイズすることで、サイトを構成していきます。

テンプレートには、優先度が指定されており、条件に一致するテンプレートがない場合、次のテンプレートを読みに行きます。

各テンプレートの優先度は以下のようになっています。

メインページ
  1. home.php
  2. index.php
カテゴリーページ
  1. category-*.php (*はカテゴリID)
  2. category.php
  3. archive.php
  4. index.php
日付ページ
  1. date.php
  2. archive.php
  3. index.php
シングルページ
  1. single.php
  2. index.php
PAGE
  1. 任意のページテンプレート
  2. page.php
  3. index.php

見て分かるように、最終的にはindex.phpがあれば、全てのページができあがります。ブログとして使うのであれば、それでもかまいませんが、一般的なサイトを作る場合は、条件分岐をさせるなど余計な手間がかかってしまいます。

必要に応じてテンプレートを作成することが重要です。

その他のページ

さらに以下のようなページのテンプレートも用意されています。

投稿者ページ
投稿者毎のページ
author.php
検索結果
検索結果を表示するページ
search.php
404ページ
ページが見つからないときに表示するページ
404.php

パーツ

以上で紹介したページの共通部分(ヘッダー、フッター、サイドバー)を記載するパーツテンプレートがあり、これらを編集することでサイトの共通部分を一括して変更することができます。

これらには、読み込みようの関数が用意されています。

ヘッダー
header.php
get_header()
フッター
footer.php
get_footer()
サイドバー
sidebar.php
get_sidebar()
コメント
comment.php
comment_template()
ポップアップコメント
comments-popup.php
comments_popup_link()

ポップアップコメントは、コメントを新規ウィンドウで表示する機能であまり使用する機会はありません。

スタイルシート

WordPressは、HTML(XHTML)とCSSを使って文書構造と見た目を完全に切り分けられるようになっています。これはSEO対策をする際とても有効であり、メンテナンスも簡単になります。

style.cssが読み込まれるスタイルシートになります。後述のテーマを識別する情報もこのファイルに書きます。

style.cssに全てのスタイル情報を書いても問題ありませんが、管理しやすくするために、用途毎にファイルを分ける方が後々楽になります。

テーマを識別する情報は以下のように書きます。


/*
Theme Name: テーマの名前
Theme URI: http://www.example.com/
Description: テーマの説明
Author: 山田太郎
*/

テーマ

WordPressは、以上のファイルを1つのディレクトリにまとめて、テーマとして扱います。テーマはクリック一つで切り替えることができるため、リニューアルが一瞬で完了してしまいます。

プラグイン

WordPressには、数多くプラグインが存在します。プラグインとは、wp-content/pluginsにアップロードし、有効化するだけで様々な効果をもたらすプログラムの固まりです。

準備

WordPressをインストールするには、PHP4.2以上、MySQL3.23.23以上が使用できるサーバが必要です。また、mod_rewriteが使えるようであればSEO対策に有利になります。

WordPressは、海外で開発されたものですが日本向けのパッケージがあるので、こちらを使います。

WordPress Japanより最新のファイルをダウンロードして下さい。

2007年4月現在、WordPressは2.0系と2.1系の2通りありますが、お使いのMySQLのバージョンによってどちらか決めて下さい。2.1系の方が管理画面が使いやすくなっているようです。基本的な操作方法に変わりはありませんが、一部のプラグインが対応していなかったりするので注意して下さい。

設定ファイルの変更

ダウンロードしたファイルはZIP形式に圧縮されていますので、解凍ソフトなどで解凍して下さい。

解凍すると、中にwp-config-sample.phpというファイルがあります。このファイルをwp-config.phpに名前を変更します。

wp-config.phpには、MySQLへのアクセス情報や言語の指定などが書いてありますので、サーバに合わせて変更します。


<?php
mb_language("Japanese");
mb_internal_encoding("EUC-JP");

// ** MySQL settings ** //
define('DB_NAME', 'データベース名');
define('DB_USER', 'ユーザ名');
define('DB_PASSWORD', 'パスワード');
define('DB_HOST', 'localhost');

$table_prefix  = 'wp_';

define ('WPLANG', 'ja_EUC');

...略...

DB_HOSTはほとんどの場合、localhostのままで動きます。WPLANGは、使用したい文字コードによって、ja_EUC, ja_UTFを指定します。MySQLの設定によっては、UTF-8で文字化けすることもありますが、UTF-8で提供されてるサービスを使うためにも、できるだけUTF-8を使うことをおすすめします。

mb_internal_encodingの値は、WPLANGに合わせて変更します。ja_EUCならEUC-JP、ja_UTFならUTF-8を指定して下さい。

WordPressを複数インストールするときは、$table_prefixを適宜変えてやることでいくつもインストールできます。

サーバへのアップロード

設定が終わったら、ファイル一式をサーバにアップロードします。アップロードする場所は、公開ディレクトリ以下であればどこでもいいです。アップロードが終わったら、そのディレクトリのパーミッションに書き込み権限(例: 707)を与えておきます。

同様にwp-contentも707のようにパーミッションを変更します。

ブラウザでインストール

ブラウザで先ほどインストールした場所にアクセスします。(例: http://www.example.com/blog/)

install.phpというリンクがありますので、これをクリックしインストールを進めていきます。インストールが完了すると、自動的にログインパスワードが作られますので、これを使って管理画面にログインします。

MySQLの基礎

2007/04/26 (Thu)

MySQLとは、軽量なRDBMS(リレーショナルデータベース管理システム)です。 最近は、安価なレンタルサーバでも使えるようになっています。

データベースとは、情報を蓄積する箱の様なものです。 Microsoft Officeをお使いの方であれば、Access(ちょっと違うけどExcel)をイメージしてもらえれば分かりやすいと思います。

WordPressでは、このMySQLを使い記事や設定情報など管理しています。

page.phpのループ外に以下のコードを入れる。


<?php 
$rows = $wpdb->get_results('select * from wp_posts where post_parent = ' . $post->ID);
if (count($rows)) {
    echo '<ul>';
    foreach ($rows as $row) {
        printf('<li><a href="%s">%s</a></li>', $row->guid, $row->post_title);
    }
    echo '</ul>';
}
?>

single.phpのループ外で以下のコードを入れる。


<?php 
$posts = get_posts('category=' . $post->category_id);
if (count($posts)):
?>
<ul>
<?php
foreach ($posts as $post) :
    setup_postdata($post);
?>
<li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

使用するプラグイン
Get Custom Field Values
使用法
テンプレートのループ内で<?php echo c2c_get_custom('キー') ?>
引数を渡すことで、カスタムフィールドの表示を自由にコントロールできます。
使用するプラグイン
Breadcrumb Navigation XT
使用法

<?php
if (class_exists('breadcrumb_navigation_xt')) {
    $path = new breadcrumb_navigation_xt();
    $path->opt['title_blog'] = 'HOME';
    $path->opt['separator'] = ' > ';
    $path->opt['singleblogpost_prefix'] = '';
    $path->opt['archive_category_prefix'] = '';
    $path->opt['archive_category_suffix'] = '';
    $path->opt['url_blog'] = '/';
    $path->opt['singleblogpost_category_display'] = true;

    $path->display();
}
?>

表示例
HOME > 会社概要
使用するプラグイン
Maintenace Mode 日本語版
使用法
有効化することでメンテナンス中のページが表示されます。オプションで表示メッセージや復帰までの時間などの設定ができます。無効化することで元に戻ります。

メニューをドロップダウンメニューにする

使用するプラグイン
Admin Drop Down Menu
使用法
有効化するだけです。

管理画面全体を見やすくする

使用するプラグイン
WP Tiger Administration
使用法
有効化するだけです。

アップロードしたファイルを管理する

使用するプラグイン
Organizer 日本語版
使用法
有効化すると、Organizerというメニューが追加されます。

カスタムフィールドを使いやすくする

使用するプラグイン
Custom Field GUI
使用法
rc-custom-field-gui/conf.iniを編集します。セレクトボタン、ラジオボタン、チェックボックスなどが使えます。

外部要因、つまり被リンク数ですが、各ディレクトリサービスや関連のあるサイトにリンクの申請し、登録してもらうことが一番重要です。それ以外にWordPressで出来ることを考えます。

「ブログとは」という説明によくでる「トラックバック」を利用します。

トラックバックとは、Aというサイトの記事に対して、何か記事を書いたときに相手に知らせる機能です。これを利用することで関連のあるサイト(ページ)から被リンクをもらうことができます。

また、WordPressにはピンバックという機能もついています。これもトラックバックと同じようなもので、投稿した記事中にあるリンク先に更新を知らせる機能がピンバックです。

オプション > ディスカッション 「投稿記事中からリンクしたすべてのウェブログへの通知を試みる」にチェックすることで使えます。(処理が重くなります)

また、TechnoratiやYahooブログ検索といったブログ検索サービスに更新したことを知らせる機能(更新Ping)もあります。

オプション > 投稿設定 「更新通知サービス」に更新をしらせるサイトを追加します。

また、pingooといった更新Pingを一括送信してくれるサービスもあります。自前で複数サイトに更新Pingを送ると処理が重くなりますので、こういったサービスを使う方がよいでしょう。

SEO対策の内部要因として、ページ内リンクを増やす方法を考えます。

ただ闇雲にリンクを張っても関連性がない場合あまり意味がありません。

そこで、自動的に関連ページへのリンクを張る方法を考えます。 この手のプラグインはいくつかありますが、日本語の問題があるため今回は「UTW mod Related Post」プラグインを使います。

このプラグインは「UltimateTagWarrior」を利用していますので、インストール、有効化しておく必要があります。

single.phpに<ul><?php utw_mod_related_post(); ?></ul>を追加することで関連ページへのリンクが張られます。

関連性は、記事毎のタグによって決まりますので、適切にタグを付けておく必要があります。

検索エンジンにインデックスされやすいURLにする

オプション > パーマリンク設定 でパーマリンク構造のカスタマイズ画面を開きます。

デフォルトのままだと、検索エンジンにインデックスされにくいため、デフォルト以外を選択します。

一般的なサイトに見せるには、「独自表記を以下の入力欄に記述」を選択し、カスタム構造に/%category%/%postname%.htmlと入力します。

これで、URLはhttp://www.example.com/company/about.htmlのようになります。

メタ:keyowrdsとメタ:descriptionを入れる

SEO対策としてはあまり効果は期待できませんが、descriptionの方は検索エンジンの結果に表示されることがありますので、適切に設定します。

keywordsの方は、タギングの機能を追加するプラグイン「UltimateTagWarrior」を使います。このプラグインは、記事毎にタグを付けることができるようになるプラグインです。UltimateTagWarriorを有効化した後、オプション > Tags より「メタキーワードを使用する」にチェックを入れます。これで記事毎のタグがkeywrodsとして表示されます。

descriptionの方は、記事の抜粋を利用します。テーマファイルのheader.phpに直接埋め込みます。


<meta name="description" content="<?php
if (strlen($post->post_excerpt) > 0) {
    echo $post->post_excerpt;
} else {
    bloginfo('description');
}
?>" />

もしくは、functions.phpに関数を登録します。


<?php
function add_meta_description()
{
    global $post;

    if (strlen($post->post_excerpt) > 0) {
        $description = $post->post_excerpt;
    } else {
        $description = get_bloginfo('description');
    }
    printf('<meta name="description" content="%s" />', $description);
}
add_action('wp_head', 'add_meta_description');
?>

PHPの基礎

2007/04/25 (Wed)

PHPとは、サーバーサイドのスクリプト言語です。特にWebに広く利用されています。 最大の特徴は、HTMLに埋め込むことができることです。


<html>
    <head>
        <title>Example</title>
    </head>
    <body>

        <?php
        echo "Hi, I'm a PHP script!";
        ?>

     </body>
</html>

<?php?>で囲まれた部分がPHPのコードとして処理されます。

詳しくは、PHP: 言語リファレンスをご覧ください。

WordPressもこのPHPで作成されていますので、PHPを理解できればWordPressを自由にカスタマイズすることが可能です。

カテゴリー: 基礎 | タグ: php | トラックバック(0) | コメント(0)

Introduction

WordPressを使って一般的な(ブログっぽくない)サイトを構築する際のポイントをまとめています。

サイト内検索

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。