【WordPress】ある意味で捗る!!投稿フォーマットを使って雑に書いてもいいコンテンツを作る

タイムライン

【WordPress】ある意味で捗る!!投稿フォーマットを使って雑に書いてもいいコンテンツを作る

ああ、こんな事が出来たらいいなぁと望んだことは大抵出来ちゃうWordPressが大好きです。

誰も使ってないかも知れませんが、カテゴリー分けや、タグ分けとはまた違った形で記事を分類できる「投稿フォーマット」。自分的な使い道が思いついたので、メモしておきます。

具体的に言えば

  • 「投稿フォーマットが【ステータス】」の記事はトップページの記事一覧には出したくない。
  • 通常の記事と「投稿フォーマットがステータスの記事」の表示の仕方を変える
  • 投稿フォーマットがステータスの記事はSEO的にはじいておく

です。

この準備をしておけば、死ぬほどどうでもいいことを気にせずブログに書けます。ああ、すっきり。言いたいことを言える世の中を目指しましょう。

投稿フォーマットをテーマで使えるようにする

そもそも投稿フォーマットって何よ!


投稿フォーマット – WordPress Codex 日本語版

aside(アサイド)
通常タイトルなしで表示。Facebook の Notes のようなもの。
gallery(ギャラリー) 
画像ギャラリー。ギャラリーショートコードと添付画像を含む投稿など。
image(画像) 
単独の画像。投稿本文内の最初の <img /> タグが画像と見なされる。もし投稿本文が URL のみの場合はそれが動画 URL となり、投稿タイトル (post_title) が画像の title 属性となる。
link(リンク) 
他サイトへのリンク。投稿本文内の一つ目の <a href=””> タグがその投稿の外部リンクと見なされる。もし投稿本文が URL のみの場合はその URL が外部リンクとなり、投稿タイトル (post_title) が名前となる。
quote(引用) 
引用文。引用文と引用元のテキストエリアを設けるのが望ましい。引用文は <blockquote>$quote_wrapped_with_paragraphs<p><cite>$citation</cite></p></blockquote> として post_content に保存すること。
status(ステータス) 
通常140程度の短い近況アップデート。Twitter のツイートのようなもの。
video(動画) 
単独の動画。投稿本文内の最初の <video /> タグまたは object/embed が動画と見なされる。もし投稿本文が URL のみの場合は、それが動画 URL となる。
audio(音声) 
音声ファイル。ポッドキャストにも使える。
chat(チャット) 
チャット履歴。例えば以下のようなもの。

WordPressデフォルトのテーマを使っている方は、テーマ自体が「投稿フォーマット」を使える状態なのですが、自作の人や、フリーのテーマの場合、「投稿フォーマット」が実装されていない場合があるので、テーマに対応させる必要があります。

具体的には

functions.phpに使いたいフォーマットを書き加えます。

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
//asideとかの部分に使いたいモノを選んで書く

投稿フォーマットが使えるようになれば投稿画面にこういう奴が出るはず。

2013-12-09_1933

とりあえずこれで「投稿フォーマット」が使える状態になりました。

特定のフォーマットと個別記事でテンプレートをわける

僕の場合は投稿フォーマットで記事の表示の仕方を分けたいので、以下の作業をしました

具体的にはsingle.phpに

/*投稿フォーマットの条件分岐例*/
<?php if ( 'quote' == get_post_format( $post->ID ) ) : ?>
        //引用コンテンツ
<?php elseif ( 'image' == get_post_format( $post->ID ) ) : ?>
        //画像コンテンツ
<?php else : ?>
        //そのほか
<?php endif; ?>

僕の場合は基本的に、「標準」か「ステータス」しか使わないので、もう少しシンプルです

/*投稿フォーマットの条件分岐例*/
<?php if ( 'status' == get_post_format( $post->ID ) ) : ?>
    //ステータスの投稿のとき
<?php else : ?>
        //そのほか
<?php endif; ?>

いちいちアイキャッチを登録するのが面倒なので、ステータス投稿にはアイキャッチを表示させないようにしてます。メタ系も必要なモノだけ表示。

表示させる内容を分けることが出来るので、僕の場合気兼ねなく適当に投稿できます。

特定のフォーマットをトップページに表示しないようにする

適当に書くコンテンツなので、出来ればトップページの記事一覧には表示したくありません。臭い物には盛大にふたをしたいのです、僕は。

そこで

//ステータス投稿をはじいてループ処理
<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('posts_per_page' => 4,
  'tax_query' => array(array(
      'taxonomy' => 'post_format',
      'field' => 'slug',
      'terms' => 'post-format-status',
      'operator' => 'NOT IN'
)),
'paged' => $paged

);

query_posts($args); ?>

<?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>
//以下ループ処理

query_postsはいろいろ問題が的なアレもあるので、多分他に回避方法があると思うのですが、僕は上記でやってます。自己責任でどうぞ。

特定のフォーマットをSEOでマイナスにならないようにする

しょっぱいコンテンツを大量生産したらGoogleに怒られるっぽいので、念のため処理しておきます。

header.phpに上で使った条件分岐

/*投稿フォーマットの条件分岐例*/
<?php if ( 'status' == get_post_format( $post->ID ) ) : ?>
    //ステータスの投稿のとき
    
<?php else : ?>
        //そのほか
<?php endif; ?>

ヘッド内に書き込む。

この書き込みをミスったらすべてのコンテンツがノーインデックスになるので、慎重に。

これでGoogle先生に怒られることなくしょうもない記事を量産できます。

まとめ

気合いを入れて「雑に書くコンテンツを準備」するのは本末転倒な気もしないではないですが、なにかと見栄えは大事ですからね。

どうでもいいことを書きたいシーズンはいつ訪れるかわからないし、どうでもいいこともたまにはログとして残しておきたい願望が僕にはあります。

WordPressの機能と条件分岐を使えば表示非表示に関しては思い通りの結果が得られますね。ほんと便利。

死ぬほどどうでもいいことをブログに書きたい方はこういうやり方もあるよ!という感じで。

文:シンタロヲフレッシュ

一緒に読んで欲しい記事

前の記事(Previous)
ここまでみんなポケッてるのか!後で読むwebサービスの「Pocket」に送り込むボタンを設置するとかなり面白い!
次の記事(Next)
改行とか画像とか、Googleリーダーが死んだからと言って油断せずにブログ書きはRSSの表示を定期的に確認したほうがいいよ