投稿を古い順番に表示するときの注意点
通常は新しい記事を一番上に表示しますが、古い記事から表示したいときにループタグの条件指定をします。
たとえば、
<?php query_posts('showposts=10&order=asc'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
のように記述します。
しかし、そうすると前後のページをクリックしたときに、同じ投稿が表示されてしまいます。
そのときの解決策がフォーラムに書かれていました。
http://ja.forums.wordpress.org/topic/127?replies=5
1ページに10記事表示したいときは、
<?php $paged = get_query_var('paged');
query_posts('posts_per_page=10&order=asc&paged='.$paged); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
のように記述すると、きちんと表示されます。
WADAX(ワダックス)でのパーマリンク設定時の注意点
レンタルサーバーのWADAXでWordPressを利用するときの、パーマリンク設定の注意点です。
通常、.htaccessには、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~frontiernet-co-jp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~frontiernet-co-jp/index.php [L]
</IfModule>
と記述しますが、これでは動きません。
エラーになってしまいます。
色々試した結果、
Options FollowSymLinks Includes
を追記したら、動くようになりました。
<IfModule mod_rewrite.c>
Options FollowSymLinks Includes
RewriteEngine On
RewriteBase /~frontiernet-co-jp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~frontiernet-co-jp/index.php [L]
</IfModule>
WADAXで、WordPressを利用するときは、参考にしてください。
WordPress2.5で投稿・ページスラッグが表示されない時の修正方法
以前のバージョンでは表示されていたのですが、2.5からパーマリンク設定で、スラッグ表示をしない場合は、投稿・ページ作成画面にスラッグが表示されなくなりました。
パーマリンク設定に関係なく、どうしても表示したい場合は、wp-admin/jsディレクトリ内のpost.jsとpage.jsをカスタマイズします。
・post.js
→76行目あたりの「jQuery(’#slugdiv’).hide();」
・page.js
→15行目あたりの「jQuery(’#pageslugdiv’).hide();」
の先頭に「//」を追記し、コメントアウトすれば表示されるようになります。
理屈は理解できるのですが、セキュリティ、バグなどで無いのに、急に変更されると困ってしまいます。
そういえば、IDも表示されなくなりました。
投稿・ページタイトルのアンカーテキストにマウスを置くと、ブラウザの下に表示されるURLでIDがわかりますが、これも運用しにくいですね。
カスタムフィールドの表示がおかしくなるときの対策
CORE SERVERやXREAの場合、ファイルのアップロードや「wp-dbmanager」プラグインがうまく稼動しません。
htaccessファイルに、下記の記述をすると解決します。
AddHandler application/x-httpd-phpcgi .php
しかし、これだと、カスタムフィールドを追加したとき、データ更新はできるのですが、表示がおかしくなります。
そこで、「アップロード」用と「wp-dbmanager」用に記述します。
①新しくhtaccessファイルを作成し、以下のように記述します。
<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<files admin.php>
AddHandler application/x-httpd-phpcgi .php
</files>async-upload.phpが「アップロード」用で、admin.phpが「wp-dbmanager」用の設定です。
WordPress2.3以下の場合は、upload.phpが「アップロード」用になります。②「wp-admin」カテゴリー配下に、このhtaccessファイルをアップロードする
PHPがセーフモードで動いているレンタルサーバーは、htaccessファイルの設定が必要なようです。
WordPressバージョンアップとIE用CSSハック
昨夜、WordPressをバージョン2.3.3にアップデートしました。
WordPress2.5がもうリリースされる予定だったので、WP2.3.3にバージョンアップするか迷っていたのですが、移行の体験もしておこう思い実行しました。
レンタルサーバーも変更したせいか、データ移行に若干、手間取りましたが、何とか完了しました。
ただ、アップロード画像のリンクはきちんとできなかったので、MySQLをいじってましたが、量が多かったので、暇なときにやるつもりです。
アップロード関係のURLは要注意ですね。
見た目には問題ないので、とりあえずそのままにしています。
ブラウザはFirefoxを利用しているので気がつかなかったのですが、IEで表示ずれが発生していました。
「!important」で対応したのですが、IE7には適用されなかったので、小粋空間さんのIE7のCSSハックを参考にさせて頂きました。
*:first-child+html {} /*IE7用CSSハック*/
* html {} /*IE6以下用CSSハック*/
おかげできちんと表示されることができました。
画像のテキストの回りこみを設定
YouTubeに画像のテキストの回りこみを設定する方法が公開されていました。
アップロードした画像をそのまま表示してしまうと、テキストが画像下の位置に、1行しか回り込まないため、きれいに見せるには、テキストの回りこみの設定が必要になります。
リッチエディタの場合は、「Insert/edit image」(木のマーク)を使った説明をしていて、コードの場合は、スタイルシートの記述方法を細かく説明しています。
WordPress初心者の方や、スタイルシートの知識があまりない方は、参考になると思います。
説明は英語ですが、動画なので、わかると思います。
ページ内に同じ日付を繰り返し表示する場合
WordPressで、同じページ内に、同じ日付を繰り返し表示したいとき、通常のthe_date();テンプレートタグでは、きちんと表示されないときがあります。
そのときは、get_the_time()関数で年月日データを取得し、表示する方法があります。
たとえば、2005年3月12日のように表示したいときは、次のように記述します。
<?php
$d_year = get_the_time('Y');
$d_month = get_the_time('n');
$d_day = get_the_time('j');
echo $d_year."年".$d_month."月".$d_day."日";
?>
また、月別アーカイブのページで、月別アーカイブのリンクを表示したいときは、次のように記述します。
<?php
$arc_year = get_the_time('Y');
$arc_month = get_the_time('m');
?>
<a href="<?php echo get_month_link('$arc_year','$arc_month');?>">
<?php the_time('Y年m月');?>
</a>
WordPressをハッスルサーバーで利用する時の注意点
WordPressをハッスルサーバー
で利用するときに、プラグインを追加すると、エラーになり使えないことがあります。
それは、PHPメモリの設定に問題があるからです。
解決策は次の通りです。
①テキストエディタで、php.iniファイルを作成
②memory_limit = 64M
と記述する(64Mである必要はありません)
③「/」ディレクトリにアップロードする
アップロード先は、WordPressのディレクトリではなく、「www」などがある、「/」にしてください。
アップロードする画像などのファイル容量を増やしたいときは、あわせて
upload_max_filesize = 64M
と記述すればOKです。
Wordpresで最新記事にNEWマークを表示する
WordPressで投稿したときに、NEWマークを表示したいときの記述です。
このサイトでも利用しています。
<?php
$days=3;
$today=date('U');
$entry=get_the_time('U');
$sa=date('U',($today - $entry))/86400;
if( $days > $sa ){
echo " <img src=\"".get_bloginfo('template_directory')."/ディレクトリ名/ファイル名\" alt=\"new\" />";
}
?>
表示する日数を変更したいときは「$days=」の数字を変更します。
「echo ” <img src=」には、NEWマークのあるパスを記述してください。
ただし、IE6の場合に、リスト形式でNEWマークを複数表示すると、レイアウトがずれてしまうようです。
IE7、Firefox、Netscapeでは問題なく表示されるので、ブラウザの要因だと思われます。
同じカテゴリーに属する投稿記事を表示させる
WordPressでプラグインを利用せず、投稿記事シングルページで、同じカテゴリーに属する投稿記事を表示したいとき、get_the_categoryタグを利用します。
続きを読む・・・

