ノウハウ色々
モジュールいろいろ
リンク集
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー


当サイト構築活用本
  (amazonリンク)

XOOPSコミュニティサイト構築ガイド

Customizing XOOPS

Googleマップ+Ajaxで自分の地図をつくる本

PHPサイバーテロの技法―攻撃と防御の実際

メイン
   XOOPSノウハウなど
     ブログ(wordpress)でタイトル一覧を表示

スレッド表示 | 古いものから 前の記事 | 次の記事 | 下へ
話題
ブログ(wordpress)でタイトル一覧を表示
投稿者: fanrun7     投稿日時: 2007-12-20

一般にブログは記事本文がいきなり表示され、タイトル一覧に相当するのは「最新の投稿」のみのようです。で、過去記事をみるには、時期指定で移動するか、カテゴリーで移動するかです。カテゴリーで移動する場合にひとつのカテゴリーに含まれる記事が増えるとスクロールしてみるにも大変。

そこで、カテゴリーに含まれる記事のタイトル一覧を表示する方法を作ってみました。

ソフトとしては、xoops上のwordpress0.33です。wordpressはもともと単体のパッケージであり、これをnobunobu氏がxoopsに移植したものなので、構造が複雑。中身をみて、まともに理解するのは大変そう。むしろDB構造をみて新規にブロックを作るほうが良いかも知れないとも考えたのですが、さらに手を抜けないか調べた末、考えたのが今回の方法です。

カテゴリー一覧に表示される記事数をクリックされると、記事全文を表示するかわりに、タイトル一覧を表示し、さらにそのタイトルをクリックすると該当記事単体の全文が表示されるようにしました。

修正箇所プログラムは以下の2本のみ。
・wordpress/blocks/wp-catogories.php カテゴリー一覧を表示
・wordpress/themes/default/index-template.php 記事本文の表示

修正内容は以下のとおりです。

wordpress/blocks/wp-catogories.php中のfunction b_wp_categories_showの一部です。
一部掲載上の都合でオリジナルソースと変えてありますが、動作は確認してあります。

		if ($block_style == 0) {
			// Simple Listing
			ob_start();
			block_style_get($wp_num);
			echo "<ul class='wpBlockList'>\n";
			// ● 2007-12-19 changed begin
			echo "<li><i>全文link (タイトルlink)</i></li>";
			wp_list_cats(
"sort_column=$sorting_key&sorting_order=$sorting_order&optioncount=$with_count");
			echo "</ul>\n";
			//$block['content'] = ob_get_contents();
			$temp_lists = ob_get_contents();
			ob_end_clean();
			$block['content'] = preg_replace_callback(
'/(<li><a.href=")([^<>"]+)("[^<>]+">)([^<>"]+)(<\/a>.\()(\d+)(\)<\/li>)/',
				create_function(
					'$matches',
'return "<li><a href=\"".$matches[2]."\">".$matches[4]."</a>'
.' (<a href=\"".$matches[2]."&titlelist=".rawurlencode($matches[4])."'
.'\">".$matches[6]."</a>)</li>\n";'
				),
				preg_replace('/[\n\t]/m','',$temp_lists)
				);
			// ● 2007-12-19 changed end
		} else {


wordpress/themes/default/index-template.phpの一部

<div id="wpMainContent">
<?php // ● 2007-12-19 inserted this block ---------------------------------
	if($_GET['titlelist']) {
		echo " ".urldecode($_GET['titlelist'])."<ul>";
	}
      // ● 2007-12-19 -----------------------------------------------------
?>
<?php if ($posts) { foreach ($posts as $post) { start_wp(); ?>
<?php // ● 2007-12-19 inserted this block ---------------------------------
	if($_GET['titlelist']) {
		echo "<li><a href='".get_permalink()."'>"
		.substr($post->post_date,0,11).$post->post_title."</a>";
		continue;
	}
      // ● 2007-12-19 -----------------------------------------------------
?>
<?php the_date('','<h2>','</h2>'); ?>
	
	途中省略
	
<?php include(dirname(dirname(dirname(__FILE__))) . '/wp-comments.php'); ?>
</div>
<?php } 
	if($_GET['titlelist']) echo "</ul>";// ● 2007-12-19 inserted
    } else { // end foreach, end if any posts ?>

スレッド表示 | 古いものから 前の記事 | 次の記事 | トップ
Copyright(c) 1996-2010 森を走ろう企画    powered by XOOPS