WordPressで特定カテゴリーの年別・月別アーカイブの美しい一覧表を作ろう!


こんな感じで特定カテゴリーの年別・月別アーカイブの美しい一覧表を作ってみたのでメモ。

table

まず以下の記事が大変参考になったのであります。

[WordPress] wp_get_archivesをカスタマイズし年と月が対応したテーブルを作る

上記で紹介されているソースに、
wp_get_archives(‘cat=15&・・・
のようにカテゴリーを指定できたらステキなわけです。

でもWordPressの標準機能ではこれは許されないことです。

そこで登場するのが Archives for a category というプラグイン。

これをインストール&有効化するだけで、先ほどのカテゴリー指定が出来てしまうという優れもので利用者も多いようです。(しばらくプラグイン自体更新していないようなのでちと怖いけど。。)

[WordPress]カテゴリー別に月別アーカイブを表示できるプラグイン「Archives for a category」

そんなこんなで出来たソースはこんな感じ。

=$firstyear;$year-- ){ $tbody .= ""; $tr = ''; for( $month=12;$month>0;$month-- ){ if( !preg_match( "/年".$month."月/u", $arr[$cnt] ) ){ $tr = "" . $tr; }else{ $tr = "" . $tr; $cnt++; } } $tbody .= $tr . ""; } echo $tbody; ?>
{$year}年{$month}月".preg_replace("/\d{4}年/u", "",trim($arr[$cnt]))."

CSSはこんな感じ。

#words{
width:100%
margin:5px auto;
font-size:75%;
border:#6699ff 1.5px solid;   
}
#words tr{
border-bottom:#6699ff 1px solid;
}
#words tr:last-child{
border:none
}
#words th{
width:8%!important;   
padding:5px 10px;
display:table-cell;
border-right:#6699ff 1px solid;
text-align: left;
}
#words td{
width:7%!important;   
padding:5px 10px;
display:table-cell;
text-align: left;
}

以上、「Archives for a category」に替わる良いプラグインがあったら、だれか教えてー。


Standard Widget Extensionsプラグインのスマホでのリンクの不具合


下記のフォーラムで書かれている内容に近いのですが、解決方法オチが違うので久々に投稿。

Standard Widget Extensionsのテーマtwenty elevenのレスポンシブの動作について

どうしてもスマホのメインコンテンツ部分でのaタグのリンクがどうしてもきかなくなってしまう。

原因はサイドバーのスクロールを固定するのに使っているStandard Widget Extensionsプラグインを停止すれば、リンクできるようになるので、こいつが原因なのは分かった。
(素晴らしいプラグインなのに、こいつ呼ばわりはいけませんね、失礼。。)

「次の幅以下で無効化」という設定項目があるので、ここにいろんな数値を入れてみますが、何を入れても無効化されない様子。

なるほど分かった、私の制作中のサイトはレスポンシブではなく、WP Sitemanagerというプラグインで、PC・スマホの表示を切り替えているから無効にならないようだ。

それならば強制的にサイドバーのIDをsidebar ⇒ sidebar2 のように変えてしまえば無効になる、今ひとつ美しくないがひとまず解決なのだ。


WordPress 500エラーが引越しや独自ドメイン設定のときに出た場合


先日当社のHPをWordPressでリニューアルしたのですが、公開前はサーバー会社が提供している仮のURLで作成して、後から独自ドメインを設定しました。

ロリポップだと、
http://yytop.ciao.jp/xxxx/

http://yytop.com/
という感じです。

リリース時に、まずサーバー側で独自ドメインを設定します。

<参考> 独自ドメイン設定・解除 – ロリポップ!

その後にWordPressのダッシュボードから、「一般設定」→「サイトアドレス (URL)」「WordPress アドレス (URL)」ともに、 http://yytop.ciao.jp/xxxx/ から http://yytop.com/ に変更します。

そうするとTOPページ以外は500エラーに・・・。

調べてみるとすぐに原因が判明、最近のレンタルサーバーは.htaccessを書き込み不可にしていることが多いのですが、ロリポップも書き込みできなかったので、自動で切り替わらなかったのでした。

.htaccessをFTPでサーバーからダウンロードしてきて、修正後アップロードしなおしてあげます。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

4行目 RewriteBase /xxxx/  ⇒ RewriteBase /

8行目 RewriteRule . /xxxx/index.php [L] ⇒ RewriteRule . /index.php [L]

これで無事に500エラーが表示されなくなりました。