Windows Live Writerでのテーマ取得失敗対処とCSSカスタムのTIPS
今回は、Windows Live Writer で wordpress のテーマを自動取得できない場合の対処について書きます。
テーマの自動取得失敗自体は割と良くある話なんですが、今回と同じパターンは見当たらなかったので、自分用メモとして残しておきます。
また、後半では Windows Live Writer 用 CSS ファイルを直接編集する時のコツも書きます。
※2012/8/24 エラー部分などを見やすく
※2012/7/18 文章ブラッシュアップ
症状と Windows Live Writerのログ確認
今回は「ブログ アカウント」→「テーマの更新」をしても、何のエラーも出ない。という困った症状です。
自動取得したテーマの格納場所(後述)を見ても何のファイルもなく、どうしていいのか分からなかったので、まずは Windows Live Writer のログの確認しました。
ログの場所は、
C:\Users\ユーザ名\AppData\Local\Windows Live Writer\Windows Live Writer.log
で、確認するとこんな感じのエラーメッセージが。
WindowsLiveWriter,1.4196,None,00011,17-Jul-2012 18:51:11.183,"Failed to download template Framed: System.Exception: Unable to locate blog post elements using most recent post 場所 System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) 場所 System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) 場所 WindowsLive.Writer.BlogClient.Detection.BlogEditingTemplateDetector.ParseWebpageIntoEditingTemplate_OnUIThread(Control uiContext, BlogPostRegionLocatorStrategy regionLocator, IProgressHost progress) 場所 WindowsLive.Writer.BlogClient.Detection.BlogEditingTemplateDetector.GetBlogTemplateFiles(IProgressHost progress, BlogPostRegionLocatorStrategy regionLocatorStrategy, BlogEditingTemplateStrategy[] templateStrategies, BlogEditingTemplateType[] templateTypes)","" WindowsLiveWriter,1.4196,None,00012,17-Jul-2012 18:51:11.755,"Failed to download template Webpage: System.Exception: Unable to locate blog post elements using most recent post
デフォルトテーマに切り替えて再取得。で対処
WordPress のキャッシュ系プラグインを無効にしたり、色々試してもダメだったので、仕方なく、デフォルトテーマである「Twenty Eleven」に切り替えてテーマを再取得しました。
その後、
C:\Users\ユーザ名\AppData\Roaming\Windows Live Writer\blogtemplates\ランダムな文字列
に格納された index.htm (環境によって変わるかも)と、その中で指定されている css ファイルを編集する事で本来設定したいテーマを仕込みました。
index.htm ファイルは編集画面のテンプレートで、内部記述にはタイトルと本文を表す変数として、{post-title} と、{post-body} が使用できます。
サイドバーや各種トラッキングコードなどの余分なコードは全てカットした方が編集画面が軽くなります。
また、CSS ファイルの書き方は注意しないと編集効率が下がる場合があるので、その部分についても少し触れます。
Windows Live WriterのCSS編集TIPS
Windows Live Writer はテーマの css の扱いにクセがあるので、そのいくつかを以下に列挙します。
デザイン上の理由で指定するケースが多い項目ばかりなので、サイト本体ではなく、WLW側の css だけ触るのが良いかもしれません。
overflow: hidden; は外した方が編集しやすい
{post-body} 内の要素に css で overflow: hidden; が指定されていると、編集時にダブルクリックが必要となり、編集効率が下がってしまいます。
本文内要素への overflow: hidden; 指定は解除しておくのがよいでしょう。
{post-body}直下要素へのCSSセレクタ「>」は効かない
{post-body} 直下の要素に対する css セレクタの「>」(子要素にのみ適用)は編集画面に反映されません。
恐らく、内部的に {post-body} を囲む形で何かしらの要素が挟み込んであるのでしょう。
余談
Windows Live Writer のテーマ検出はなかなか面白い機能なんですが、うちみたく、複雑なテンプレートだと自動取得に失敗するんですよねぇ…。
できれば、自動取得だけじゃなく、自分の好きなカスタムテンプレートを指定できるようにして欲しいところではあったりします。
本番系サイトのテーマを変える。ってのはなかなか厳しいかもしれませんが、これが問題になる規模のサイトさんならテスト系なり実験用の環境があると思うので、クライアント側の hosts を書き換えてそっちからテーマを取得する。という方法もあると思います。
ノウハウは必要ですが、Wordpress は意外とスケーリングが効くので意外な大規模サイトで使ってるケースもあったりなかったり。
Open Live Writer にVasterのテーマを反映させる方法。その3 - 坊主生活 says:
7年前
[…] 絶対に失敗しないWindows Live Writerの「テーマの更新」方法を探る! Windows Live Writerでのテーマ取得失敗対処とCSSカスタムのTIPS 全てのWindows Live Writer利用者へ、便利な3つのTips […]