アクセス数: | 今日: | 昨日:   記事数:996

HOMESITE MAPBOOKMARKTAG CLOUD

Category:WordPressTips

WordPress今まで2chのまとめブログの一覧をちまちまローカルのHTMLファイルに書き、FTPでそれをアップ。
サイト上は iframe で表示させていました。
何だかそれも面倒になってきたので、このまとめ一覧もWordPressの記事の1つにしました。

しかしそうなると、一覧のページにその記事が載ってしまうのでそれを非表示、且つサイドに持っていった一覧を『2ch』と付けたカテゴリーだけ表示させる方法です。
詳細は以下から。

最初カテゴリーを非表示させる事が出来る『Advanced Category Excluder』というプラグインを試しましたが、何故だか上手くいきませんでした。
他のプラグインとバッティングしてるかもしれません。
なもんで、プラグインには頼らずPHPに直接コードを書き込みます。

※使用テーマはデフォルトです。

『index.php』の以下の部分にコードを追加します。

index.php

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if (in_category('N')) continue; ?>
『 N 』は非表示にしたいカテゴリーのIDです。
カテゴリーページで調べれます。
これで指定したIDのカテゴリーは投稿一覧に表示されなくなります。

お次にサイドバーのカテゴリー一覧の非表示設定。
ちなみに私はウィジェットではなく、全てコード記入しています。

sidebar.php
<?php wp_list_categories('show_count=1&exclude=N'); ?>
『 N 』は非表示にしたいカテゴリーのIDです。
ちなみに『show_count=1』はカテゴリーに属する記事数表示です。

最後に特定のカテゴリー(2ch)だけを表示させるコードです。
私の場合『sidebar.php』に表示させていますが、勿論どこでも表示させる事は可能です。

sidebar.php
<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <?php if ( ! in_category('N')) continue; ?>
    <?php the_content(__('(more...)')); ?>
  <?php endwhile; ?>
<?php endif; ?>
『 N 』は非表示にしたいカテゴリーのIDです。
これで指定したIDのカテゴリーだけを表示させる事が出来ます。


これだけで済むんだから、プラグイン入れる必要もないですね。

参考になったサイトです。
WPカスタマイズ講座
特定のカテゴリのみ除去して表示 or 特定のカテゴリのみ表示する方法


■追記 (4/13 2:15)
表示させるコードの書き方ですが、上記の方法だと記事数がWordPressの設定に左右されてしまいます。
新しい記事を1つだけ表示させたいので、以下のコードを追加しました。

sidebar.php
<?php query_posts('showposts=1'); ?>
<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <?php if ( ! in_category('N')) continue; ?>
    <?php the_content(__('(more...)')); ?>
  <?php endwhile; ?>
<?php endif; ?>
『showposts=1』の数値を変えると、その分だけの記事数を表示させる事が出来ます。

■追記2 (4/13 3:40)
さらに改変。w
上記の方法だと、トータルで新しい記事1つだけしか取得しません。
なもんで、取得するカテゴリーを選択する必要があります。
追加したコードは以下。

sidebar.php
<?php query_posts('cat=N&showposts=1'); ?>
<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <?php if ( ! in_category('N')) continue; ?>
    <?php the_content(__('(more...)')); ?>
  <?php endwhile; ?>
<?php endif; ?>
『cat=N』を追加してOKです。^^;
『 N 』は表示にしたいカテゴリーのIDです。

Tag :

WordPressまだ試験的ですが、前々からやってみたいと思っていた『同じ日に書いた記事をひと括りのボックスで表示したい』ってのをやってみました。
CSSとかは、これからチョコチョコと変えていきたいと思います。

では、WordPressで行うその方法。

本当ならば『IF文』を使うんだろうけど、何回やっても分からなかったので簡単な方法で行いました。
使ったテンプレートタグは『the_date』だけです。
以下はデフォルトテーマでの設定。

<?php if (have_posts()) : ?>

  <?php while (have_posts()) : the_post(); ?>

    <?php the_date('Y年 n月 j日', '</div><div class="entry_btm"></div><div class="entry_body"><h3">', '</h3>') ?>

    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

    <div class="entry">
      <?php the_content(('続きを読む >>'));?>
    </div>

    <div id="postmeta">
      <?php _e("カテゴリ:"); ?> <?php the_category(',') ?><br />
      <?php comments_popup_link(__('Comments (0)'), __('Comments (1)'), __('Comments (%)')); ?>
    </div>

  <?php endwhile; ?>

  </div>
  <div class="entry_btm"></div>

<?php endif; ?>

所々端折っています。
要は『the_date』に入れる引数で閉じタグや開始タグを設定しています。
本来の使い方とは違っていますが・・・。w

WordPress Codex 日本語版での記述例
コード記述例
<?php the_date('Y-m-d', '<h2>', '</h2>'); ?>
出力例
<h2>2006-10-10</h2> 

私のやり方だと、どうしても一番上に『<div class=”entry_btm”></div>』が出てしまいます。
このクラスにはバックグラウンドで画像を表示してるので、どうにも格好が悪い。

私の解決方法として、上に表示させてる『Ads by Google』で誤魔化しました。
もっと良い方法有ったら教えてください・・・。w

ちなみに、1ページの表示を10件から20件に増やしました。

Tag :

拾いもの画像右サイドバーとコンテンツ内にある『拾いもの画像』。
今まではちまちま手作業で追加・更新してたんですが、そろそろ面倒になってきたんでPHPで自動で表示させるようにしました。

そんな自動ループ表示方法は以下から。

表示する画像とサムネだけは自分で用意します。
『img』フォルダに全て入れる。
表示画像: 1.jpg、2.jpg、3.gif、4.png、5.jpg・・・と連番にする。
サムネイル画像: 1_s.jpg、2_s.jpg、3_s.jpg、4_s.jpg、5_s.jpgと、元の画像と同じ番号にして『_s』を付ける。

まずはサイドバーの表示コードから。

sidebar.php

<?php
  include( "style.php" );
  $handle = opendir( "img/" );

  while ( $fl = readdir($handle) ) {
    if ( $fl == "." || $fl == ".." || !preg_match("/(.)(jpg|jpeg|gif|png)/i", $fl) ) continue;
    $fileAry[] = $fl;
  }

  closedir( $handle );
  $cnt = count($fileAry) / 2;

  for ( $i = $cnt; $i > $cnt-10; $i-- ) {
    $file_name = $i;
    $code = "pic_".$i;
    $alt = $ary[$code];

    echo '<a href="http://kome-suki.net/img/'.$file_name.'" rel="lytebox[side_vacation]" title="'.$alt.'"><img src="http://kome-suki.net/img/'.$file_name.'_s" alt="'.$alt.'"></a>';
  }
?>
まずはincludeで『style.php』を読み込む。
(このファイルについては後で記述してます。)

countで『/ 2』(÷2)にしてるのは、同じフォルダ内にファイルを全て入れているから。

新しい画像順に10個だけ表示させたかったので、『for ( $i = $cnt; $i > $cnt-10; $i– ) {』にしていますが、全ての画像を表示させたい場合は『for ( $i = $cnt; $i > 0; $i– ) {』でいけます。
逆に古い順(番号の若い順)にしたい場合は、『for ( $i = 0; $i < $cnt; $i++ ) {』です。

$codeで番号の頭に『pic_』をつけています。
画像にtitleとaltを付けたかったので、別ファイルにて入力しています。
後はechoで出力して終わり。

画像ファイル形式はjpgだったりgifだったりpngだったりするので、拡張子は付けていません。
付けなくても表示されるんですね。
なもんで、これでOKにしました。

『rel="lytebox[side_vacation]"』はLightbox表示させる為のコードです。
必要なければ削除してください。

以下は先に書いていた『style.php』。
ファイルはテーマ内のsidebar.phpと同じ階層に置いています。

style.php (ファイル名は任意)
<?php
  $ary = array(
    "pic_1" => "あいうえお",
    "pic_2" => "かきくけこ",
    "pic_3" => "さしすせそ"
  );
?>

これで1.jpgのtitle、altに『あいうえお』、2.jpgに『かきくけこ』、3.jpgに『さしすせそ』が表示されます。

後はimgフォルダ内にポンポン画像を入れてUPしていくだけで、新しい画像を勝手に表示してくれます。

要は何がしたかったかと言うと・・・、
(1) 画像をUPするだけで、自動で新しい画像を表示して欲しかった。
(2) title、altを別ファイルで管理(入力)したかった。
  ⇒ sidebar.phpは触りたくなかった。

次に、ページ内のコード。
基本的には変わりありませんが、サイドバーと違ってincludeで読み込む時の記述、全ての画像を表示させると、ちょっと違います。
sidebar.phpと違う箇所は赤字で表記しています。

ページ内
<?php
  include( "wp-content/themes/default/style.php" );
  $handle = opendir( "img/" );

  while ( $fl = readdir($handle) ) {
    if ( $fl == "." || $fl == ".." || !preg_match("/(\.)(jpg|jpeg|gif|png)/i", $fl) ) continue;
    $fileAry[] = $fl;
  }

  closedir( $handle );
  $cnt = count($fileAry) / 2;

  for ( $i = $cnt; $i > 0; $i-- ) {
    $file_name = $i;
    $code = "pic_".$i;
    $alt = $ary[$code];

    echo '<a href="http://kome-suki.net/img/'.$file_name.'" rel="lytebox[picture_vacation]" title="'.$alt.'"><img src="http://kome-suki.net/img/'.$file_name.'_s'.$fl.'" alt="'.$alt.'"></a>';
  }
?>

使わない場合は良いけど、Lightboxのrelをサイドバーと別コードにしなければいけない点。
同じだとページ内+サイド部の画像数になってしまいます。

私のやりたい事は出来ました。
これで忌まわしい(?)手作業から開放されます。(´ω`)

最後に、PHP全く分からない私にコードを教えてくれた兄に感謝。
※私が考えたコードじゃないんですねー。www

Tag : , ,

【WordPress】コメントURLを「_blank」にする方法

『【WordPress】コメントURLを「_blank」にする方法』をはてなブックマーク

コメントWordPressのフォーラムで、エントリー内のコメントされた際、リンクを別ウィンドウ(タブ)で開きたいと言うのがありまして、それの回答をしたら「自分のリンクは同窓、他人のリンクは別窓が良い」って言われたんで、頑張ってやってみました。

『wp-includes/comment-template.php』を開きます。
145行目以降を、以下の様に変更。(2.7 日本語版の場合)

if ( empty( $url ) || 'http://' == $url )
  $return = $author;
else
  $return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
return apply_filters('get_comment_author_link', $return);
 ↓
if ( empty( $url ) || 'http://' == $url )
  $return = $author;
else
  if ($url == '***')
   $return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
  else
   $return = "<a href='$url' rel='external nofollow' class='url' target='_blank'>$author</a>";
  return apply_filters('get_comment_author_link', $return);
要するに、if文の入れ子です。
元々あるif文の中に、もし(if)このURLだったらターゲット指定なし。
それ以外(else)だったらターゲット指定あり。
ってな具合にしてます。
***は該当するURLを入力。
私の場合、『$url == ‘http://kome-suki.net/’』になります。

めちゃくちゃ簡単に記述したけど、間違ってたらどーしよう…。w

Tag :

【WordPress】月別アーカイブに件数を表示させる

『【WordPress】月別アーカイブに件数を表示させる』をはてなブックマーク

月別アーカイブウィジェットを使わず、デフォルトテーマのまま使ってると月別アーカイブに件数が表示されません。
ってな訳で表示させてみました。

<h2>月別アーカイブ</h2>
<ul>
  <?php wp_get_archives('type=monthly'); ?>
</ul>
 ↓
<h2>月別アーカイブ</h2>
<ul>
  <?php wp_get_archives('type=monthly&show_post_count=true'); ?>
</ul>
こんだけ。

うはwwwめっさ簡単wwwwww


かかし日和
アーカイブリストをドロップダウンメニューに

Tag :

【WordPress】投稿時のボタンをカスタマイズ

『【WordPress】投稿時のボタンをカスタマイズ』をはてなブックマーク

EntryWordPressで記事を書く時、上部に色々ボタンが付いています。
ボタンを押せば、一発で該当するコードを書き込んでくれます。
しかし結構自分が使うコードが無く、単語登録とかして記述してたんですが、ちょっくらWordPressさんにやってもらおうとカスタマイズしてみました。

まず、『wp-includes/js/quicktags.js』を開きます。
36行目からのコードに注目。 (WordPress 2.7の場合)

36 edButtons[edButtons.length] =
37 new edButton('ed_strong'
38 ,'b'
39 ,'<strong>'
40 ,'</strong>'
41 ,'b'
42 );
これは『strong』タグの設定です。
36行目はお決まり文句なので無視。
37行目もほぼお決まりで、『ed_strong』の赤文字が各タグによって変わります。
38行目は実際投稿画面で表示するボタンの文字です。
39行目は始まりのタグ。
40行目は終わりのタグ。
単独タグの場合(brとかimgとか)は空白になるようです。
41行目はショートカットキーです。
私が使ってるFirefox3だと『Alt + Shift + ○』になります。

以上の基礎知識(勝手に私が解釈してるだけなので、間違っていたらすいません。)を頭に入れてカスタマイズ開始。

ここまで書いておいて何なんですが、あまりカスタマイズする項目がありません。w
よく使うって言ったら、『pre & code』と『more』ぐらいです。
今まで『code』ボタンはあったのに『pre』はないって事で、この2つは組み合わせて使う機会が多いので、codeボタンに追加しました。
▼デフォルト状態
Entry
118 edButtons[edButtons.length] =
119 new edButton('ed_code'
120 ,'pre/code'
121 ,'<pre><code>'
122 ,'</code></pre>'
123 ,'c'
124 );
120行目のボタン表示にpreを追加。
121・122行目にpreタグを追加。
123行目のショートカットキーはあんまり使わないんでそのまま。
▼出来上がり
Entry
これでヨシッ!
これで『pre/code』ボタンを押すだけで『<pre><code>~~~</code></pre>』を書いてくれます。

ついでに『more』にも。
頭に画像はCSSで『float: right;』付けてるんで、『more』で続きの文を表示した時画像の下に表示するように設定。
126 edButtons[edButtons.length] =
127 new edButton('ed_more'
128 ,'more'
129 ,'<!--more--><br class="clear" />'
130 ,''
131 ,'t'
132 ,-1
133 );
これで『more』ボタンを押すと、以下のように『<!–more–><br class=”clear” />』を書いてくれます。
Entry
いや~、WordPressのカスタマイズは楽しいな~。
しかしこの設定、当たり前のようにWordPressのバージョンアップした時に、再度設定し直さなきゃいけません…。

Tag :