WordPressでアイキャッチを使えるようにする

WordPressでアイキャッチを使えるようにする

アイキャッチ機能が追加されて結構経ちますが、特に使うこともないだろうと今まで対応してませんでした。
でも、facebookのいいねボタンを設置したことで、アイキャッチ画像があった方が良さそうだったので追加しようと思います。

アップロードする画像の画質を上げる

WordPressで画像アップロードの際、サムネイルが作成されるわけなんだけど、このサムネイル微妙に画質が悪い!
小さいと分かりにくいけど、うちは縦横600px位まで使うので、意外と目立つ。
と、云うことで画質上げ。

wp-include/media.phpの405行目に

1
2
3
4
5
6
7
8
function image_resize(
			$file,
			$max_w,
			$max_h,
			$crop = false,
			$suffix = null,
			$dest_path = null,
			$jpeg_quality = 90 ) {

というのがある。

この、$jpeg_quality = 90がjpgの画質。
これを100にすれば一番良い画質になるんだけど、WordPressのバージョンアップ時に上書きされて90に戻ってしまう。
それは面倒というか、100にするの忘れるのでテーマのfunctions.phpで対応することにする。
プラグイン化も可能だけどね。

テーマのfunctions.phpに以下を追加

1
2
3
4
5
6
/* jpg画質up
*******************************************************************************/
add_action('jpeg_quality', 'custom_jpeg_quality', 10, 1);
function custom_jpeg_quality() {
	return 100;
}

あたりまえだけど、画質を上げるとファイルサイズも大きくなるので注意。

feedにアイコンを

feedにアバターというかアイコンというか、アイコンかな?
まぁ、ちょっとした画像を追加したかったんだ。

グーグル先生に聞いたらいい感じの答えが返ってきたので紹介。

wp-include/fedd-rss2.phpにコードを追記すればいいみたい。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
/**
 * RSS2 Feed Template for displaying RSS2 Posts feed.
 *
 * @package WordPress
 */
 
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
 
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
 
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	<?php do_action('rss2_ns'); ?>
>
 
<channel>
	<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
	<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
	<link><?php bloginfo_rss('url') ?></link>
	<description><?php bloginfo_rss("description") ?></description>
	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
	<language><?php echo get_option('rss_language'); ?></language>
	<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
	<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
	<!-- コード追加開始 -->
	<image>
		<url><?php bloginfo('template_url') ?>/rss2.png</url>
		<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
		<link><?php bloginfo_rss('url') ?>/</link>
	</image>
	<!-- コード追加終了 -->
	<?php do_action('rss2_head'); ?>
	<?php while( have_posts()) : the_post(); ?>
	<item>
		<title><?php the_title_rss() ?></title>
		<link><?php the_permalink_rss() ?></link>

ただ、wordpressのバージョンアップの度に編集するハメになるので、編集しなくていいようにfeed用テンプレートを作る。

使用ているテーマフォルダにあるfunctions.phpに以下コードを追加

1
2
3
4
5
6
7
8
9
10
11
12
/* feed用テンプレート
*******************************************************************************/
remove_filter('do_feed_rss2', 'do_feed_rss2', 10);
add_action('do_feed_rss2', 'custom_feed_rss2', 10, 1);
function custom_feed_rss2( $for_comments ) {
    $template_file = '/feed-rss2' . ( $for_comments ? '-comments' : '' ) . '.php';
    $template_file = ( file_exists( get_template_directory() . $template_file )
        ? get_template_directory()
        : ABSPATH . WPINC
        ) . $template_file;
    load_template( $template_file );
}

そして、テーマフォルダにwp-include/fedd-rss2.phpをコピーすれば、テーマフォルダ内のfedd-rss2.phpをテンプレートとして使用するようになる。
画像ファイルはテーマフォルダにrss2.pngで置いておく。

ちなみに、変更が反映されるのはアクセスした時じゃなくて、feed内の文章に変更が発生した時(投稿など)です。

参考:
wordpressのRSS2.0をプチカスタマイズ – ひかげStyle
各種フィード用テンプレートの変更 : dogmap.jp

WordPressのホームページを変更する

WordPressをwordpressディレクトリにインストールすると、ホームページが/wordpress/index.phpになって、ちょっとURLが不格好になる。

こんな感じに。

http://awgnirzard.dynalias.com/wordpress/

そこで、インストールしたディレクトリ以外の場所をホームにして、ちょっとURLの見栄えを良くしよう。

こんな感じに。

http://awgnirzard.dynalias.com/

やり方

1.index.phpを設置する。

wordpressディレクトリの中にあるindex.phpをwordpressディレクトリと同じ階層(最上層ディレクトリ)にコピーする。

コピーしたindex.phpを変更する。

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);
 
/** Loads the WordPress Environment and Template */
require('./wordpress/wp-blog-header.php');
?>

wp-blog-header.phpはindex.phpと同じ階層でなく、wordpressディレクトリの中にあるので”/wordpress”を追加する。

2.WordPressの設定を変更する

管理画面 -> 設定 -> 一般のサイトのアドレス (URL)を変更する。


変更前:http://awgnirzard.dynalias.com/wordpress
変更後:http://awgnirzard.dynalias.com
※最後に ‘/’ は要らないようです。

「変更を保存」を押下。

3.ページ確認

管理画面の左上のブログタイトルをクリックして、変更したURLでホームページが表示されることを確認する。

たまにはチェック

たまにはAnother HTML-lint gatewayでチェックしてみる。

98点だった。

さて、修正するか。

WPAdsを使わない時のために

広告等をランダム表示できるプラグインWPAdsをテーマに組み込んでいて、その組み込んだゾーンが空になった場合、何も出力されなくなるので、空divになってしまったり、テーマが崩れる事があるので、その対策。

wpadsはprint文が書いてあるだけなので、wpadsの中で呼んでるget_wpadsを使う。
get_wpadsだとhtmlを返してくれるので、これを変数に入れてissetで中身が入ってるかどうかがわかる。

うちの場合はこんな感じ。

1
2
3
4
5
6
7
8
<?php $wpads = get_wpads('header'); ?>
<?php if(isset($wpads)): ?>
<div id="ad">
    <div id="ad_inner">
        <?php echo $wpads; ?>
    </div>
</div>
<?php endif ?>

get_wpads(‘header’)の結果を変数$wpadsに代入。
変数$wpadsが空じゃなかったら、周りのdiv要素とechoで変数$wpadsの中身を出力。

上へ参ります。