Archive for the ‘ WordPress ’ Category

WordPressの記事内に自動挿入されるpタグを消す方法

記事本文中に自動的に挿入されるpタグを出さないようにするには
wp-includes/default-filters.php の中の

add_filter(’the_content’, ‘wpautop’);

箇所をコメントアウトすれば可能ですが、アップデートの際にどうしても上書きされてしまいます。

アップデートしても上書きされないようにするにはテーマ内で設定を上書きします。

テーマのfunctions.phpに以下を記述。

remove_filter('the_content', 'wpautop');

「抜粋」へも出さないようにするには以下を記述。

remove_filter('the_excerpt', 'wpautop'); ?>

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サイトを構築する場合なんか便利かもしれません。