今まで使ってきたWordPressにP2を入れるための改造
WordPress ? P2 ? WordPress Themes
WordPressのテーマ「P2」の最新版(SVNから引っ張ってきたもの)には、ダッシュボードから投稿した記事はタイトルが表示されるようになるオプションが追加されています。
(SVNリポジトリはこちら http://svn.automattic.com/wpcom-themes/p2/ )
これは、ダッシュボードからの投稿の際、カスタムフィールドに「display_title」を作って、それを見てタイトルを表示させる処理になっています。
私は今までの記事をそのままに導入したかったので、P2からの投稿の時にタイトルを表示しない、つまりデフォルトはタイトルを表示する、としたかったのでその辺を改造しました。
改造するファイルは2つ。
p2/functions.php
- $post_id = wp_insert_post( array(
- 'post_author' => $user_id,
- 'post_title' => $post_title,
- 'post_content' => $post_content,
- 'tags_input' => $tags,
- 'post_status' => 'publish'
- ) );
- echo $post_id? $post_id : '0';
- add_post_meta($post_id, 'p2_post', true);
- exit;
- }
- //function which_title($id) {
- // if(
- // !get_post_meta($id, 'display_title') &&
- // ( strpos($_SERVER['HTTP_REFERER'],'post-new.php' ) || strpos($_SERVER['HTTP_REFERER'],'xmlrpc.php' ) )
- // ) {
- // add_post_meta($id, 'display_title', true);
- // }
- //}
- //add_action('publish_post', 'which_title');
prologue_new_post関数のwp_insert_post()呼び出し後にp2_postをいうカスタムフィールドを追加しています。
また、display_titleカスタムフィールドの付加処理をコメントアウトしています。
p2/entry.php8行目
- <?php if( get_post_meta($post->ID, 'p2_post') == false ) the_title("<h2>","</h2>"); ?>
- <h4>
- <?php the_author_posts_link(); ?>
- <span class="meta">
- <?php printf( __('%s <em>on</em> %s', 'p2'), get_the_time(), get_the_time( get_option('date_format') ) ); ?> |
- <?php comments_popup_link( '0', '1', '%' ); ?>
- | <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"><img src="<?php bloginfo("wpurl"); ?>/images/parts/icon_hatena_bookmark.gif" width="16" height="12" alt="hatena button" /></a>
- <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"><img src="http://b.hatena.ne.jp/entry/image/<?php the_permalink() ?>" alt="hatena count" /></a>
display_titleがtrueのときに表示となっていた処理を、p2_postがfalse(無い)時に表示としました。
ついでに、その下を上のようにすればはてブボタンを付けられます。
ただし、icon_hatena_bookmark.gifのパスははそれぞれの環境に合わせる必要があります。


