Home

TAN LABO

WordPressで404.phpを作成した際の設定

WordPressで404.phpを設置したあとに、そのままだと上手くエラーページを表示してくれない場合があるんです。
Google先生に尋ねたところ、Hinemosuさんのページで紹介されていました。(ありがとうございます)

その時のために、.htaccessファイル等を編集する方法

.htaccessファイルの先頭に、以下のコードを追加します。

ErrorDocument 404 /index.php?error=404

またarchive.php、page.php、single.phpがある場合は、各ファイルの「< ?php get_header(); ?>」の前にいかのコードを記述します。

<?php if (!have_posts()) {
header("HTTP/1.1 404 Not Found");
include (TEMPLATEPATH . '/404.php');
return; } ?>

WordPressで会員サイトを作るときのログイン画面を表示させるプラグイン

WordPressで会員制サイトを作成したい場合や、制作途中でまだ公開したくないけどサーバーで表示を確認したいときに、ユーザーしかサイトを見られないようにするためのプラグインが「Members Only」というプラグインです。

プラグインをこちらからダウンロードします。

ダウンロードしたファイルを解凍して、サーバーのPluginフォルダに置きます。

WordPressにて、プラグインを有効化して、「設定」-「Members Only」をクリックします。

設定画面のMembers Only?のところが最初チェックが外れていますので、チェックをつけて画面したの【Update Option】ボタンをクリックすればOKです。

WordPressのページに.htmlをつけてくれるプラグイン

WordPressでページを作成して、そのページ内のname属性とかにリンクを張りたい場合、パーマリンクがXXX.html
になっていないと、<a href=”hoge.html#hogehoge”>って感じでリンクを張れないんですよね。
どうしようかと調べていましたら、ページのスラッグに自動的に.htmlをつけてくれるプラグインがありました。
同じこと考える人はいるもんですね。(ありがたい、ありがたい)
「.html on PAGES」というプラグインをダウンロードします。
ダウンロードはこちらから
あとは通常のプラグインと同じくpluginフォルダにアップロードして、管理画面から有効化してあげるだけです。
スラッグを書くときに.htmlとか入れなくていいです。例えばスラッグが「hoge」なら、そのページのパーマリンクが自動的にhoge.htmlに替わってくれます。

WordPress のパーマリンク設定とsingleページ

WordPressでパーマリンクを設定しているときに、SEOとかでよく

/%category%/%post_id%.html
/%category%/%post_id%/

などの表記をするのですが、サイトを作成していてsingleページへリンクが飛ばない現象が起きたので、忘れないようにメモ。
個別の記事を表示させて、コメント欄を表示させたいのに、

/%category%/%post_id%/

だと、何故か個別ページに飛ばず、indexページが表示されてしまいます。何故だろう?

/%category%/%post_id%.html

とすると、single.phpが適用されます。
もう少し勉強が必要だ。

WordPressにおける写真の配置

WordPressで写真を投稿すると、文字の回り込みを指定できるようになってると思います。

テーマとかを変更していて、そのまま使っていると編集画面ではきちんと回り込んでくれる文字も、実際ブラウザで確認すると全然回り込んでくれていないので、フォーラムにて教えていただきました。

img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}

img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}

img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}

.alignright {
float: right;
}

.alignleft {
float: left
}

デフォルトのテーマのCSSのようですが、これをテーマにあった形(そのままでも)で使うときちんと回り込んでくれます。

WordPressパーマリンクの設定

WordPressのパーマリンクの設定は、SEOの観点からも変更した方がいいみたいです。

設定は簡単で、管理画面の【設定】-【パーマリンク設定】からカスタム構造のラジオボタンをクリックし、

/%category%/%post_id%.html

上記のような記述をすればOKです。

気をつけなくてはいけないのは.htaccessファイルです。

こちらを作成して、Wordpressをアップロードしたルート(wp-adminフォルダとかwp-contentフォルダがあるところ)に保存し、パーミッションを606か、666に変更しておきます。

パーマリンクの設定を更新すると、.htaccessファイルが更新されます。

WordPressのデータベースを定期的にバックアップするプラグイン

WordPressのデータベースを自動でバックアップしてくれ、しかもそれをメールで配信してくれるプラグインを導入。

WP-DB-Backupプラグイン

WP-DB-Backup設定画面

定期バックアップの項目で、スケジュール:毎日1回、メールアドレスを設定して、定期バックアップボタンをクリック。

時間を変更する際の書式は

2009/11/26 Thursday 04:00:00

とするようです。

XREAでWordPress自動アップグレード失敗

XREAを使用していて、Wordpressの自動アップグレードに失敗した場合は、/wp-admin/.htaccessに以下のコードを追加してアップロードすれば解決されます。
深い雪さんのWordPressアップグレード失敗記事に紹介されていました。

<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<Files plugin-install.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
<Files update.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
<Files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

WordPressで会員専用ページを作る

会員専用ページにしたくてよいプラグインを探していましたら、Angsuman’s Authenticated WordPress Pluginというプラグインがありましたので、早速適用。

設置はいつものプラグインと一緒なので簡単でしたが、ログイン画面に正しいアカウントを入力してもページが動かない。ログインページのままでした。

えっ?なぜ?って思いパスワードミスったかなともう一度入力してもやっぱり駄目。
仕方なくまたググると脳みその中身さんのページで紹介されていたので、その通りに実行

<?php
/*
Plugin Name: Angsuman's Authenticated WordPress Plugin
Plugin URI: http://blog.taragana.com/index.php/archive/angsumans-authenticated-wordpress-plugin-password-protection-for-your-wordpress-blog/
Description: This plugin allows you to make your WordPress site accessible to logged in users only. In other words to view your site they have to create / have an account in your site and be logged in. No configuration necessary. Simply activating the plugin is all that is required from you.
Author: Angsuman Chakraborty, Taragana
Version: 1.0
Author URI: http://blog.taragana.com/
License: Free to use non-commercially.
Warranties: None.
*/
function ac_auth_redirect() {
 // Checks if a user is logged in, if not redirects them to the login page
 if ( (!empty($_COOKIE[USER_COOKIE]) &&
 !wp_login($_COOKIE[USER_COOKIE], $_COOKIE[PASS_COOKIE], true)) ||
 (empty($_COOKIE[USER_COOKIE])) ) {
 nocache_headers();
 header("HTTP/1.1 302 Moved Temporarily");
 header('Location: ' . get_settings('siteurl') . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI']));
 header("Status: 302 Moved Temporarily");
 exit();
 }
}

if('wp-login.php' != $pagenow && 'wp-register.php' != $pagenow) add_action('template_redirect', 'ac_auth_redirect');
?>

変更後

<?php
/*
Plugin Name: Angsuman's Authenticated WordPress Plugin
Plugin URI: http://blog.taragana.com/index.php/archive/angsumans-authenticated-wordpress-plugin-password-protection-for-your-wordpress-blog/
Description: This plugin allows you to make your WordPress site accessible to logged in users only. In other words to view your site they have to create / have an account in your site and be logged in. No configuration necessary. Simply activating the plugin is all that is required from you.
Author: Angsuman Chakraborty, Taragana
Version: 1.0
Author URI: http://blog.taragana.com/
License: Free to use non-commercially.
Warranties: None.
*/
function ac_auth_redirect() {
	// Checks if a user is logged in, if not redirects them to the login page
if ( !is_user_logged_in() ){
		nocache_headers();
		header("HTTP/1.1 302 Moved Temporarily");
		header('Location: ' . get_settings('siteurl') . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI']));
            header("Status: 302 Moved Temporarily");
		exit();
	}
}

if('wp-login.php' != $pagenow && 'wp-register.php' != $pagenow) add_action('template_redirect', 'ac_auth_redirect');
?>

めでたしめでたし。脳みその中身さんありがとうございました。

WordPressで前後のページへのリンクが無い場合の処理

WordPressをカスタマイズしていて、前後の記事へのページが無い場合、それらのリンクを
<div>とかで括っているとhtmlで要素内に何もないよって怒られちゃうんですよね。
そんなときに、どうしたらよいのか調べましたら、だずりんぐわーるどつぅさんの「Another HTML-lintで100点を目指せ」のページで紹介されていましたので、使わせていただきました。

single.phpではこちら

<?php $next_post = get_next_post(); ?>
<?php $previous_post = get_previous_post(); ?>
<?php if(!(empty($next_post) &amp;&amp; empty($previous_post))): ?>
<div class="navi">
<ul>
<?php if(!empty($previous_post)): ?>
<li><?php previous_post_link( '%link', '&lt;span&gt;&amp;laquo;&lt;/span&gt; %title' ) ?></li>
<?php endif ; ?>
<?php if(!empty($next_post)): ?>
<li><?php next_post_link( '%link', '%title &lt;span&gt;&amp;raquo;&lt;/span&gt;' ) ?></li>
<?php endif ; ?>
</ul>
</div>

index.phpならこちら。基本的に同じような気がするがphpをあまり理解できてない私としては・・・

<?php $next_posts_link = get_next_posts_link('&laquo; 前のページ',0); ?>
<?php $previous_posts_link = get_previous_posts_link('次のページ &raquo;',0); ?>
<?php if((isset($next_posts_link)) || (isset($previous_posts_link))): ?>
<div>
<ul>
<?php if(isset($next_posts_link)): ?>
<li><?php echo $next_posts_link; ?></li>
<?php endif ; ?>
<?php if(isset($previous_posts_link)): ?>
<li><?php echo $previous_posts_link; ?></li>
<?php endif ; ?>
</ul>
</div>
<?php endif ; ?>

別にここまでしなくても、表示には問題ないのですが、htmlをちゃんと書きたいと初心者ながら思っているのです。
だずりんぐわーるどつぅさんありがとう。

Home

Search
Feeds
Meta

Return to page top