【Windows Live Writer】「WordPress」の個別記事テーマを正しく取得させる!

スポンサーリンク
スポンサーリンク

◆ Windows Live Writerで</span>が勝手に挿入される!

Windowsでブログを書く時は、エディタに「Windows Live Writer(WLW)」を使っています。とても便利なエディタですが、いくつか困った点も。

現在使っている「WordPress」のテーマの読み込みが上手くいかないのか、あるいはテーマ自体に問題があるのか(テーマは自作)、以下の困った点があります。

  1. プレビュー画面で表示されるページのレイアウトがおかしい。
  2. HTMLコードの</span>が勝手に挿入される。

プレビュー画面については耐えられる範囲ですが。</span>が勝手に挿入されるのは何とかしたい。WLWにはHTMLコードを自動で修正する機能があって。その機能のせいか、無意味な</span>が文章の途中に勝手に挿入されます。

以前のテーマではこの現象は発生していなかったので、きっと現在のテーマに問題があるのでしょう。今までは投稿のたびに</span>を手動で削除していましたが。そろそろ面倒くさく感じたので、何とかしようと重い腰をあげました。

windowslivewriter_20140417_01
「編集画面」(リッチテキスト)ではこんな感じに書けますが。

windowslivewriter_20140417_03
「プレビュー画面」では、サイトで実際に表示される(個別記事の)レイアウトと異なる。

windowslivewriter_20140417_02
「ソース画面」に切り替えると、不要な</span>が勝手に挿入されます。

◆ テーマ取得に失敗する原因

まず、テーマ取得に失敗する原因を調べたところ…。WLWはテーマ取得の際に、トップページ(home.phpまたはindex.php)を読み込むとのこと。そのトップページのphpファイルに、以下2つのテンプレートタグの記述がないと、プレビュー画面が正しく表示されないようです。

  • <?php the_title(); ?>
  • <?php the_content(); ?>

ちなみに、僕の場合(「ぼぼニートの資格取得日記☆」の場合)トップページの記事一覧は「記事全体」ではなく、「概要」のみを表示させています。つまり、記事全体を表示する<?php the_content(); ?>ではなく、概要のみを表示する<?php the_excerpt(); ?>を使用しています。

◆ 対処方法2つ!

WLWは、テーマ取得ではトップページを読み込む。2つのテンプレートタグが必須。このことから、以下2つの方法(のどちらか)で上手くいくのではないかと考えました。

  1. トップページで最初に表示される記事の<?php the_excerpt(); ?>を、一時的に<?php the_content(); ?>に書き換えて、WLWにテーマ取得させる。
  2. トップページでなく、個別記事のテーマ(single.php)をWLWにテーマ取得させる。つまり、single.phpを一時的にhome.phpに名称変更して、WLWにテーマ取得させる。

◆ 手順を考えた!

上記2つの方法に対して、ざっくり手順を考えました。各々の手順は以下の通り。

方法1のざっくり手順

  1. WordPressのping送信機能を無効にする(※テーマ取得のために、WLWから「仮の記事」が投稿される。「仮の記事」の情報がping送信されないようにする)。
  2. home.php内の、一番最初に表示される記事の<?php the_excerpt(); ?>を<?php the_content(); ?>に書き換える
  3. 「Windows Live Writer」を起動し「テーマの更新」を行う
  4. 正しくプレビューされることを確認
  5. (正しくプレビューされなくても)home.php内の<?php the_content(); ?>を<?php the_excerpt(); ?>に戻す
  6. ping送信機能を有効にする

方法2のざっくり手順

  1. ping送信機能を無効にする
  2. home.phpのファイル名をhome1.phpに変更する
  3. single.phpをコピーして、コピーしたファイルの名前をhome.phpにする
  4. 「Windows Live Writer」を起動し「テーマの更新」を行う
  5. 正しくプレビューされることを確認
  6. home.phpを削除
  7. home1.phpのファイル名をhome.phpに変更する
  8. ping送信機能を有効にする

「ほぼニートの資格取得日記☆」には、なんと!バックアップサイトが存在するので、そちらで検証。まず方法1を試して、ダメなら方法2で。

◆ 実際にやってみた!

実際にやってみました。結果は…。

方法1では何も変わりませんでした。相変わらず</span>は入るし、プレビューのレイアウトも変わらず。<?php the_excerpt(); ?>を<?php the_content(); ?>に書き換えたところで、home.php自体はそのままなので、何も変わらずなのかな。

で、方法2を試したところ…。プレビューのレイアウトはやっぱり変。でも、個別記事のsingle.phpを読み込ませたので、以前よりは個別記事テーマに近い感じに(アイキャッチ画像は表示されなくなりました)。そして</span>も勝手に挿入されなくなりました。

もっとしっかり改善させたいなら、ページ全体のコードを直す必要がありそうですが、面倒くさいのでここまで。とりあえず、</span>が勝手に入らなくなっただけでも良しとします。

◆ キャプチャ画面を載せる!

作業の際、画面をキャプチャしたので、いくつか載せておきます。

windowslivewriter_20140417_12
ping送信機能を無効にする。

ping送信には「WordPress ping Optimizer」を使っています。WordPressの管理画面から[Enable pinging]のチェックを外して、[Save Settings]をクリック。

windowslivewriter_20140417_05
方法1を行うため、home.phpを編集。コードを見ると…。

トップページの最初に表示される記事については、post-large.phpに書いてます。

windowslivewriter_20140417_06
ということで、post-large.phpを編集。

<?php the_excerpt(); ?>を<?php the_content(); ?>に書き換えます。

実際は、<?php the_content(); //the_excerpt(); ?>と、概要表示の部分をコメントアウト。

windowslivewriter_20140417_08
で、WLWでテーマの取得をさせます。

windowslivewriter_20140417_09
取得中。

windowslivewriter_20140417_10
テーマ取得のために、「仮の記事」が投稿されます。

windowslivewriter_20140417_11
方法1では何も改善されず。

方法2を試します。

single.phpのコピーをファイル名home.phpでペースト。その時にちょっとひと手間。

そのままでテーマ取得させると、プレビュー画面で既存の記事が複数表示されてしまいます。編集中の記事だけ表示させたいので、下図のように…。

windowslivewriter_20140417_14 
if文・while文の部分を<?php the_post(); ?>に書き換え。

下の方に書かれているendwhile、endifも削除しておきます。


Windows Live Writer

スポンサーリンク

SNSシェアボタン