featured content galleryプラグインを改造
- 2011
- 10月
- 25th
featured content galleryプラグインを改造
任意のページにフォトギャラリーを追加してくれる便利なプラグイン
「Featured content gallery」
簡単にスライドショーを実現できる
とても優秀なプラグインなのですが
Wordpressの「サイトのアドレス(URL)」を変更すると
うまく稼動してくれません。
つまり
Wordpressのアドレス
http://www.hoge.com/wp/に対し
サイトのアドレス
http://www.hoge.com/と設定してしまうと
画像が表示できなくなってしまうわけです。
書き出されたソースを見てみると
プラグインのスクリプト自体は稼動していても
ターゲットの画像が抽出できていない様子。
あれやこれやとphpファイルを吟味した結果
おそらくquery_postsが悪影響を及ぼしているのではないかと予想。
query_postsはwordpressのメインループを書き換える関数です。
featured content galleryではメインループ($wp_query)を、
わざわざ他の変数に退避(代入)してメインループを書き換えている様子。
そんなことをするよりはサブループを作るget_postsを使ったほうが良いじゃないかと
gallery.phpの以下のソースコードにあるquery_postsをget_postsに変更しました。
<?php $temp_query = $wp_query; ?>
<?php query_posts('category_name=' . get_option('gallery-category') . '&showposts=' . get_option('gallery-items')); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="imageElement">
<h2><?php the_title() ?></h2>
<?php
if(get_option('gallery-use-featured-content')) {?>
<p><?php $key="featuredtext"; echo get_post_meta($post->ID, $key, true); ?></p>
<?php
} else {
?>
<p><?php the_content_rss('', 0, '', $wordquantity); ?></p>
<?php
}
?>
<a href="<?php the_permalink() ?>" title="Read More" class="open"></a>
<img src="<?php $key="articleimg"; echo get_post_meta($post->ID, $key, true); ?>" alt="<?php $key="alttext"; echo get_post_meta($post->ID, $key, true); ?>" class="full" />
<img src="<?php $key=$imgthumb; echo get_post_meta($post->ID, $key, true); ?>" alt="<?php $key="alttext"; echo get_post_meta($post->ID, $key, true); ?>" class="thumbnail" />
</div>
<?php endwhile; else: ?>
<?php endif; ?>
<?php $wp_query = $temp_query; ?>
これを
$list_posts = get_posts(array(
'numberposts' => get_option('gallery-items'),
'category_name' => get_option('gallery-category'),
));
foreach ($list_posts as $post) { ?>
<div class="imageElement">
<h2><?php the_title() ?></h2>
<?php
if(get_option('gallery-use-featured-content')) {?>
<p><?php $key="featuredtext"; echo get_post_meta($post->ID, $key, true); ?></p>
<?php
} else {
?>
<p><?php the_content_rss('', 0, '', $wordquantity); ?></p>
<?php
}
?>
<a href="<?php the_permalink() ?>" title="Read More" class="open"></a>
<img src="<?php $key="articleimg"; echo get_post_meta($post->ID, $key, true); ?>" alt="<?php $key="alttext"; echo get_post_meta($post->ID, $key, true); ?>" class="full" />
<img src="<?php $key=$imgthumb; echo get_post_meta($post->ID, $key, true); ?>" alt="<?php $key="alttext"; echo get_post_meta($post->ID, $key, true); ?>" class="thumbnail" />
</div>
こんな感じに
これで求める動作を得ることができました。











Comments
Facebook Comments