Posts Tagged ‘ wordpress

WordPressでアイキャッチ画像を使用する

functions.phpに以下の記述をする。

<?php
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 300, 300, true );
?>

「300」は画像のサイズ。

個別記事編集画面のアイキャッチ画像から画像を選択。(投稿に挿入しなくてよい)

表示させたいループ内に以下を記述。

<?php the_post_thumbnail(); ?>

アイキャッチ画像の元画像を取得するには

<?php 
$thumbnail_id = get_post_thumbnail_id($post->ID);
$image = wp_get_attachment_image_src( $thumbnail_id, 'full' );
$src = $image[0];
$width = $image[1];
$height = $image[2];
echo ''.$src.'';
?>

で取得できるので、フォトギャラリーなどに便利です。

WordPressでindex.phpからindex.html等にリダイレクトさせない方法

WordPress使用中になんらかの理由で、メンテナンスモード以外に一時的にルートディレクトリのindex.htmlを生かしたままindex.phpの編集を行ないたい場合があります。

そういった場合でもWordPress2.7以降はindex.phpにアクセスするとindex.htmlに自動的にリダイレクトされてしまうので、その回避方法。

wp-includes/canonical.php の286行目付近、

$redirect['path'] = preg_replace('|/index.php/*?$|', '/', $redirect['path']);

の記述を

$redirect['path'] = preg_replace('|/index.php/$|', '/', $redirect['path']);

に変更(「*?」を削除)するとリダイレクトされずにhtmlファイルを別に表示させておくことができます。

WordPressのCommented entry listプラグイン不具合の対処方法

先日某サイトのサーバー移転をした際にWordPressのコメントリストを表示する”Commented entry list“プラグインが正常に機能せず、「No Response」と出てしまったのでその対処法。

原因としては、$tablecommentsと$tablepostsにテーブル名が入っていないので、プラグイン自体を修正して正しい値が入るようにすればOK。

commented-entry-list.php内の

function get_recently_commented($limit = 10) {
global $wpdb, $tablecomments, $tableposts;

function get_recently_commented($limit = 10) {
	global $wpdb;
	$tablecomments = $wpdb->comments;
	$tableposts = $wpdb->posts;

に変更、続いて

function get_recently_trackbacked($limit = 10) {
global $wpdb, $tablecomments, $tableposts;

function get_recently_trackbacked($limit = 10) {
	global $wpdb;
	$tablecomments = $wpdb->comments;
	$tableposts = $wpdb->posts;

に変更すると無事機能しました。

WordPressで記事をランダムに表示させる

WordPressで記事をランダムに表示させたい場合はquery_posts() 関数のorderby(並び順引数)を利用すると可能です。

ランダムに表示したいループ箇所にorderby=randを指定。

<?php query_posts('showposts=3&orderby=rand');?>
<?php if(have_posts()):while(have_posts()):the_post();?>
<h2><a href="<?php the_permalink();?>"><?php the_title();?></a></h2>
<?php the_content();?>
<?php endwhile;endif;?>

上記のケースでは3件ずつ(showposts=3)ランダム(orderby=rand)に表示させることができます。

カテゴリーなどの指定も可能ですので、例えばWPを利用してECサイトを構築する場合なんか便利かもしれません。

WordPressで特定のタグがついた記事を抽出する方法

WordPressでカテゴリーとは別に特定のタグが付いた記事のみをピックアップして表示する方法。

例えば「hogehoge」というタグが付いた記事を5件表示させたいときは、

<dl>
  <?php query_posts('tag=hogehoge&showposts=5');?>
  <?php if(have_posts()):while(have_posts()):the_post();?>
    <dt><?php the_time('Y.m.d');?></dt>
    <dd><a href="<?php the_permalink();?>"><?php the_title();?></a></dd>
  <?php endwhile;endif;?>
</dl>

とすることで表示させることができます。

tag=hogehogeで表示するタグの指定、showpost=5が記事を5件分表示の指定です。