WordPress初心者がハマリやすいエラーや問題とその解決方法
Post on:2011年11月7日
WordPressでブログやサイトを作成・運営する際に役立つ、ハマリやすいエラーや問題とその解決方法を紹介します。
WordPress Tips and Tricks for Beginners
[ad#ad-2]
下記は各ポイントを意訳したものです。
テーマとテンプレートの違いは?
- 問題
- WordPressのテーマファイルとテンプレートの違いが分かりません。
- 答え
- テーマファイルはあなたが必要とするファイルをすべて含むフォルダです。
例えば、WordPressのデフォルトのテーマファイル「Twenty Eleven」がそうです。
WordPressをはじめる多くの人がテーマファイルからはじめ、それを元にブログやサイトを作ります。もちろん、テーマファイルはサイトの名称などリネームして利用することができます。テーマ自体の名前を変更する場合は、「style.css」で変更します。
テンプレートというのは、フォルダの代わりに1つのファイルを示します。自身のテンプレートを常に持っているページがトップページで、全体に適用されます。
テンプレートを作るためには、テーマファイルの中に新しいファイルを作成してください。ファイルの名前は、template.php などがよいでしょう。
テンプレートを作成する時は、最初に下記のコードを記述します。
<? /* Template Name: Home */ ?>
テンプレートの名前はコメントアウトしていますが、WordPressはこの名前を使って呼び出すことができます。
作成したテンプレートは管理画面から新しいページを作る際に、ドロップダウンから選択するとそのテンプレートを適用したページが作成されます。
WordPressで画像が表示されない
- 問題
- WordPressで画像が表示されません。
- 答え
- 画像のパス指定が間違っているかもしれません。
例えば、下記のURLの場合。
$SITE_URL = "http://www.onextrapixel.com";
画像の配置に下記のような変数を使用します。
<img src="<?php echo "$SITE_URL"; ?>/images/myimage.jpg" alt="An Image" />
これはWordPressでは機能しません。
画像を表示するには、次の方法を使用します。
<?php bloginfo('template_directory'); ?>
「$SITE_URL」ではなく「bloginfo('template_directory');」を使用してください。
<img src="<?php bloginfo('template_directory'); ?> /images/myimage.jpg" alt="An image" />
「bloginfo('template_directory');」はテンプレートが入っているディレクトリを参照します。
URLを全部書くのが面倒
- 問題
- WordPressで作成したブログ内のリンクを記述する際、URLを全部書くのが面倒です。
- 答え
- WordPressにはURLを参照する変数が用意されています。
全部のリンクに同じ文字列をタイプするのは面倒です、ここで紹介する方法はドメインを変更した時にも有効な方法です。
下記の変数を使用することで、ブログのドメインを利用することができます。
<?php bloginfo('url'); ?>
リンクなどを記述する際は、下記のようになります。
<a href="<?php bloginfo('url'); ?>/about">About Our Company</a>
「bloginfo('url');」は管理画面-設定-一般設定に記述したURLを参照します。
[ad#ad-2]
パンくずを設置したい
- 問題
- カテゴリの上にパンくずを設置したいです。
- 答え
- WordPressには便利なプラグインが揃っており、パンくず用のプラグインには「Bredbrumb XT」などがあります。
しかし、ここでは手作業でパンくずを加える方法を紹介しましょう。
プラグインを使わないでオリジナルのパンくずを使用する利点は、カラーやサイズなど自分で調整可能で、好きな場所に配置できることです。
「content-single.php」に下記のコードを加えます。
<?php if (in_category('technology')) { ?> <div id="full-tag"> <span id="title"><a href="<?php bloginfo('url');?>">Home</a> / <a href="<?php bloginfo('url');?>/category/technology/"> Technology</a> /</span><span id="tagline-text"> The future and what to do about it.</span> </div> <?php } ?>
このコードはカテゴリごとに異なる属性を利用することができます。
ページごとに異なるスタイルシートを適用したい
- 問題
- ページごとに異なるスタイルシートを適用できますか?
- 答え
- WordPressの条件分岐タグを使用することで簡単にできます。
例えば、トップページと他のページで異なるスタイルシートを適用する場合は、下記のコードを「header.php」に記述します。
<?php if (is_page_template ('home-template.php')) { ?> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory');?>/home.css" /> <?php } ?> <?php if (is_page_template ('about-template.php')) { ?> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory');?>/about.css" /> <?php } ?>
トップページ(home-temlate.php)には「home.css」、他のページ(about-template.php)には「about.css」を適用します。
ページの名前を使って、分岐させることもできます。
<?php if (is_page ('home')) { ?> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory');?>/home.css" /> <?php } ?> <?php if (is_page ('about-us')) { ?> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory');?>/about.css" /> <?php } ?>
異なるテンプレートに異なるスタイルシートを適用することは簡単です。
新しい記事を表示したい
- 問題
- トップページに最新の記事を表示したいです。でもFeedでは全文を表示したくないです。
- 答え
- 簡単にできます。
特定のカテゴリだけを除外したり、表示することも可能です。
下記のコードを記述します。
<?php query_posts($query_string . '&showposts=10' ); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="story"> <div class="story-content"> <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> <?php the_excerpt(); ?> </div> </div> <?php endwhile; endif; ?>
「&showposts=10」は見せる記事の数です。
特定のカテゴリを除外する際は、下記のようになります。
<?php query_posts($query_string . '&cat=-6&showposts=10' ); ?>
これは記事を10個表示し、6のIDを持つカテゴリを除外します。
逆に特定のカテゴリだけを見せる場合は、下記のようになります。
<?php query_posts($query_string . '&cat=6&showposts=10' ); ?>
これは6のIDを持つカテゴリだけを表示します。
sponsors