2013.09.14

子カテゴリのときだけ逆順で表示する

旅カテゴリのところは、過去の旅をクリックしたときに、
帰ってきた後の部分から読み始めて、クリックして遡らないといけなくて、読みにくかった。

そこで、旅カテゴリ自体をクリックしたときは最新を先頭に表示し、
それぞれの旅をクリックしたときは、その旅の最初である過去を先頭に表示するようにしたかった。

親カテゴリのテンプレートを使う に書いたように、
旅カテゴリはどれを選んでも、専用のカテゴリファイル(category-42.php)を使うようにしたので、
編集したファイルはその1つだけである。

で、逆順に表示するのは query_posts($query_string.’&order=ASC’) を while の前に入れればいいらしいので、
以下のように、親カテゴリ(旅カテゴリ)をクリックしたときは DESC (最新が先頭) にして、
子カテゴリ(2013.08: ケニア・タンザニア等)をクリックしたときは ASC (過去が先頭) になるようにした。

<?php
  if(is_category(’42’)): query_posts($query_string.’&order=DESC’);
  else: query_posts($query_string.’&order=ASC’);
  endif
?>
<?php while (have_posts()) : the_post();?>

ページ移動のときも Newer | Older という順で表示していたのだが、そこも逆にしないといけない。

<?php if(is_category(’42’)) : ?>
  <?php previous_posts_link(‘« Newer’) ?> <?php next_posts_link(‘Older »’) ?>
<?php else : ?>
  <?php previous_posts_link(‘« Older’) ?> <?php next_posts_link(‘Newer »’) ?>
<?php endif; ?>

これで少し読みやすくなったかな。


Posted 2013.09.14, 18:27 by mera and filed in WordPress
子カテゴリのときだけ逆順で表示する はコメントを受け付けていません。
2013.09.14

親カテゴリのテンプレートを使う

前に映画カテゴリのテンプレートを置き換えたのだが、子カテゴリそれぞれに対してテンプレートを作っていた。
今度は旅行カテゴリをいじろうと思っているのに、数が多くてめんどくさい。

そこで探してみたら、まさにその内容が載っていたので試したら、そのままできた。

子カテゴリのアーカイブページを親カテゴリ用のテンプレートファイルで表示しよう

functions.php に category_template というフィルタを追加して、そこで、
自分用のカテゴリファイルがなくて親がいる場合には、親のカテゴリファイルを使うように書く。


こっち方面もうちょっと勉強しようかな。

WordPress にそこまで時間をかけたことないが、仕事は2ヶ月くらいで何とかなることを考えると、
こういったものに労力を割いたほうが今後のためになるな。



Posted 2013.09.14, 17:56 by mera and filed in WordPress
親カテゴリのテンプレートを使う はコメントを受け付けていません。
2013.09.14

WordPress 2.9.1 から WordPress 3.6.1 へのアップグレード

MySQL5 を使える環境であることが前提。
不安なので、以前のバージョンは FTP で全ファイルをバックアップしておく。

MySQL4 から新しくMySQL5 に変えるので、まずは接続テスト。

wp-config.php ファイルのデータベース接続情報を編集し、MySQL5 につないでみる。
ファイルを保存するときに、UTF-8 で BOM のチェックを外して保存しないといけないので要注意。

接続先を変えただけなので、古い WordPress + MySQL5 という組み合わせ。
問題なく接続でき、管理画面にログインできることを確認しておく。
(管理画面にログインした後で真っ白になったが BOM チェックがついてたせいだった)

次に、WordPress自体のアップグレードを行う。
自動アップグレードがなぜか動かなかったので、手動で行った。
(ダウンロードしていますというメッセージのまま動かなかった)

wordpress-3.6.1-ja.zip をダウンロードして展開。
wp-content ディレクトリと wp-config.php は上書きせず、他のディレクトリとファイルを更新する。
wp-content/languages ディレクトリも更新していい。

ブログのURL の wp-admin/update-core.php にアクセスする。
アップグレードのためのデータベース更新をしてくれる。

無事に管理画面にログインできたら、プラグインの更新をする。

ブログ自体の見た目は以前とほとんど変わらないが、けっこういじってるので、ちょっと崩れてる。
(前の記事、後ろの記事へのリンクが全エントリについてる…)

その程度なら後で直せばいいか・・・。← まだ直してない。


Posted 2013.09.14, 00:09 by mera and filed in WordPress
WordPress 2.9.1 から WordPress 3.6.1 へのアップグレード はコメントを受け付けていません。
2013.09.13

phpMyAdmin による MySQL4 から MySQL5 への移行

ここのブログ環境は WordPress を使っているのだが、ずっと古いバージョンのままだった。
なぜなら LaCoocanサーバの MySQL のバージョンが古くて、WordPress を更新できなかったのだ。

久しぶりにサーバ管理のWeb画面にログインしてみたら、MySQL5 にアップデートできるとのこと。
やらなきゃなーと思いつつ放置していたが、やっと今日アップデートした。

phpMyAdmin を使って、MySQL4 からデータをエクスポートし、MySQL5 にインポートする。

いくつか詰まった点があったのでメモ。

1. MySQL4 のアカウントでログインする時、エンコードをUTF-8にする。
  エンコードなし(non)にしてるのに EUC-JP でエクスポートされてておかしいと思ったら、
  ログイン時のエンコードのままというのが non らしい。

2. ログインしたらデータベース名をクリックしてトップページを抜け、エクスポート画面を開く。
  全テーブルを、SQL形式、圧縮なし、エンコードなし(non)でファイルに保存する。

3. エクスポートしたファイルを開き、TYPE=MyISAM を ENGINE=MyISAM に置換する。
  MySQL4 と MySQL5 のバージョン間の違いのようである。

4. 編集し終わったファイルのサイズが 8MB 以下になるように分割する。
(インポート画面で ZIPファイルを認識すると書かれていたが、ダメだった。)

5. MySQL5にログインし、インポートする。
  ここでエラーが出なければOK.


Posted 2013.09.13, 23:55 by mera and filed in WordPress
phpMyAdmin による MySQL4 から MySQL5 への移行 はコメントを受け付けていません。
2011.08.28

WordPress のサイドバーを変える

特定カテゴリーのときに使用する sidebar.php ファイルを指定することはできたので、
次はその内容をメインのものと違うものにしようと思った。

追加したいウィジェットを並べれば基本的なものは使える。
テンプレートタグ/the widget

例えば、カレンダーを入れたいときはこんな感じである。
<div id=”sidebar”>
<div class=”sidebar-widget”>
<h4>カレンダー</h4>
<?php the_widget(‘WP_Widget_Calendar’); ?>
</div>
</div>

あとは、他のカテゴリーの情報とかを隠したかったので、最近の記事リストを独自に作った。

カテゴリー名とURLを出すところは前と同じだが、カテゴリー数だけ繰り返すので foreach を使っている。
このとき、カテゴリーIDが並んでいないので、一度配列に入れている。

最新の投稿から何件か、タイトルとリンクを出したかったので、
get_posts(‘numberposts=10 & category=’.$value); でカテゴリーから10記事をリストするようにした。

<h4>最近の記事</h4>
<?php
$array = array(43,44,45,47,46);
foreach ($array as &$value):
?>
<b><a href=”<?php
echo get_category_link($value);
?>”>
<?php
$cat = get_category($value);
echo attribute_escape($cat->cat_name);
echo ‘ (‘. attribute_escape($cat->category_count) .’)’;
?></a>
</b><br/>
<ul>
<?php $posts=get_posts(‘numberposts=10 & category=’.$value); ?>
<?php if ( $posts ) : foreach($posts as $post) : setup_postdata($post); ?>
<li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a>&nbsp;-&nbsp;<?php the_time(‘Y/n/j’); ?>
<?php endforeach; endif; ?>
</ul>
<?php
unset($value);
endforeach;
?>
</div>

参考: WordPressで特定カテゴリーの新着記事リンクを表示させたい

あとはCSSとか変えようかなって思ってたけど、それ以外はだいたい思い通りになった。

そんなこんなで、「映画」カテゴリーを変えていったのである。
あとは同じように独立性が高い「旅」カテゴリーも同様に変えたいと思っている。



Posted 2011.08.28, 22:57 by mera and filed in WordPress
WordPress のサイドバーを変える はコメントを受け付けていません。
2011.08.28

WordPress で1つ上の階層のカテゴリー名を表示してリンクする

参考:
親カテゴリ名を取得し表示したい
親カテゴリーIDの取得


トップカテゴリーから全て並べるのではなくて、自分と1つ上の親カテゴリを使いたかった。

<a href=”自カテゴリのリンク”>親カテゴリ名と自カテゴリ名を並べる</a>

とかしたくて、

<a href=”<?php
 $categoryname = single_cat_title(”,false);
 $categoryid = get_cat_ID($categoryname);
 echo get_category_link($categoryid);
?>”>
<?php
 $cat_now = get_the_category();
 $cat_now = $cat_now[0];
 $cat = get_category($cat_now);
 if ($cat->parent) {
  $parent = get_category($cat->parent);
  echo attribute_escape($parent->cat_name);
 }
 echo attribute_escape($cat->cat_name);
?>
</a>

っぽくしてみて、できた。
(実際にはカテゴリー別に分岐とかしてるけど)


Posted 2011.08.28, 02:08 by mera and filed in WordPress
WordPress で1つ上の階層のカテゴリー名を表示してリンクする はコメントを受け付けていません。
2011.08.28

WordPress でカテゴリーごとにデザインを変える

wp-content/themes/使用中のテーマ/ にて、
category.php がある場合は、カテゴリーアーカイブ(?cat=ID)を選んだときにそれが使われ、なければ index.php が使われる。
category-ID.php がある場合、それはそのIDのカテゴリーアーカイブのときに使われる。

例えば、?cat=48 というカテゴリーを選ぶと、
1. category-48.php
2. category.php
3. index.php
の順番に探して、あったものを使う。
(ホントはもっとあるので、詳しくはこちら > テンプレート階層

1. のファイルを用意せずに、2.や3.のファイル内で if文を使って分岐させることもできる。

カテゴリーアーカイブを開いたとき、そのカテゴリーによって変える場合、
<? php
 if(is_category(’43’)) {
  ここに?cat=43のときの処理
 } else {
  その他のときの処理
 }
?>

1つの投稿(?p=)を開いたとき、その投稿が属するカテゴリーによって変える場合、
<? php
 if(in_category(’43’)) {
  ここに?cat=43のときの処理
 } else {
  その他のときの処理
 }
?>
is_categoryとin_categoryが違う。

で、処理の部分に、使うヘッダーファイルやサイドバーファイルを指定したりする。

通常のヘッダーファイルは header.php であり、
 <? php get_header(); ?>
で呼び出すが、
 <? php get_header(’48’); ?>
と書くと、header-48.php が呼び出される。
 <? php get_header(‘movie’); ?>
というように文字でもよく、この場合はheader-movie.php が呼び出される。

<?php include (TEMPLATEPATH . ‘/header-movie.php’); ?>
というようにも書けるので、これはheader-TAG.php の形じゃない場合に使えるかな。


Posted 2011.08.28, 01:41 by mera and filed in WordPress
WordPress でカテゴリーごとにデザインを変える はコメントを受け付けていません。
2011.07.18

WordPress for Android

先ほど入れたのは、ページ閲覧のほうがタッチパネル向きのデザインになるプラグイン。
投稿画面のほうが普通のページのままだったので使いづらい。

Android アプリで 『WordPress』 というものがあったのでインストール。
これは本家が出しているものだな。

起動すると、新規にBlogアカウントを作るか、作ってあるものを登録するか聞かれる。
私はここを編集するのが目的なので、登録に進む。

Blog URL として、WordPress が入っているトップディレクトリを指定する。
Username と Password はログインするために使ってるやつを使用。
リモート用のアカウントを作ってもよかったけど、まぁいいや。

その前に、WordPress側で [設定] ⇒ [投稿設定] から、
「リモート投稿」の項目で「XML-RPC」を有効にしなければならない。

(してなくてもエラーメッセージにそう書いてくれるので親切^^)

あとはアカウントが合っていれば、OK。
複数のブログを登録できるらしいので、たくさん持ってても1アプリ内で使える。
ないけど。

『コメント』『投稿』『ページ』『統計情報』の4項目があるけど、
主に使うのは『投稿』で、たまに『コメント』かな。


Posted 2011.07.18, 16:51 by mera and filed in Android, WordPress
WordPress for Android はコメントを受け付けていません。
2011.07.18

WPtouch

WordPressを、Android, iPhone用に最適化してくれるプラグイン。

  1. http://wordpress.org/extend/plugins/wptouch/ よりダウンロード
  2. zipファイルを解凍する
  3. wptouch ディレクトリを、/wp-content/plugins/ にアップロードする
  4. WordPressのAdmin画面で、[プラグイン]からWPtouchの[使用する]をクリックする

今使ってるWordPressのバージョンでは互換性がないらしい。

でも、古いバージョンを入れたところ、見た目は変わらないように見えたので、
互換性がないと言われながらも、最新版を使うことにした。


Posted 2011.07.18, 16:03 by mera and filed in WordPress
WPtouch はコメントを受け付けていません。
2011.04.23

Akismet

このブログにスパムフィルタを導入。
WordPressにデフォルトでついてるAkismetというプラグインを有効にしただけだが。

よくわからないけど、英語とか(たまに違う言語もあるけど)、
日本語でない言語で、ただブログをほめてどこかのリンクを貼ってあるコメントが多く、
いちいちスパムとしてよりわけるのがめんどくさかったのだ。

Akismet は有効にすると、APIキーの入力を求められるので、貼ればOK.
http://wordpress.com/ のサイトで Sign up をすると、
その確認で送られてくるメールの中に、APIキーが貼ってある。

早速1件、スペイン語のコメントを捕捉してくれた模様。
なかなかイイ感じかな。


Posted 2011.04.23, 18:03 by mera and filed in WordPress
Akismet はコメントを受け付けていません。