WordPress 管理画面でのテーマの名前と画像の変更

WordPress

WordPress 管理画面でのテーマの名前と画像の変更

WordPressの管理画面で、外観→テーマ と行くと、いくつかのテーマが選べますが、自作のテーマの場合は、どこでこの名称とスクリーンショットを変更するのか?を書いておきます。

  • 名称

たとえば、ocという名称のテーマを作ったとします。
wordpress/wp-content/themes/oc/style.csssの冒頭に

 /*
 Theme Name: OC
 Theme URI: http://onlineconsultant.jp
 Author: Onlineconsultant
 */ 

と記載するとこのTheme Nameがテーマの名称として管理画面に表示されます。

  • テーマの画像

上記のstyle.cssと同じディレクトリにある、screenshot.pngを変更します。

WordPress 特定の投稿のあるカスタムフィールドを取得する

WordPress

WordPress 特定の投稿のあるカスタムフィールドを取得する

たとえば、投稿IDが18のinfoというカスタムフィールドが取得したい場合

 get_post_meta(18, 'info', true); 

で取得できます。
最後の引数は、配列で返すか、値で返すか、で値の場合trueを入れます。

サンプルです。

 //customというカスタムフィールドの値があれば、カスタムフィールドを表示
 
 $meta_values = get_post_meta($id, 'custom', true);
 if($meta_value){
  echo $meta_value;
 }
 

WordPress 特定のカテゴリの投稿で、子孫カテゴリ以外を取得する

WordPress

WordPress 特定のカテゴリの投稿で、子孫カテゴリ以外を取得する

WordPressには

 query_posts()

という便利な関数があり、これで投稿を取得することができます。
普通に特定のカテゴリ内の投稿を取得したい場合は

 query_posts( 'cat=4' );

とすればよいのですが、これだとカテゴリID4以下の子孫カテゴリの全部の投稿をとってきてしまいます。

子孫カテゴリがいらない場合は、

 query_posts('category__in=4');

というように、’category__inというパラメーターを指定します。

アンダースコア2つなので、注意しましょう!

WordPressを利用したサイト構築はこちらまで

WordPress 投稿を管理者がレビューしてから投稿させたい

WordPress

WordPress 投稿を管理者がレビューしてから投稿させたい

WordPress 3.3.1

WordPressを会社サイトなどで利用していると、たとえば部下が記事を書いて、上司がそれを承認してから公開したい、などの要望があると思います。

その場合

  1. 部下を「寄稿者」としてユーザー登録
  2. 上司は「管理者」にしておきます。
  3. 部下がログインして、投稿し、「レビュー待ちとして送信」をクリックすると、後で上司がレビューして、承認、ということができます。ただ、メールなどで通知がいかないのが難点。(送信)、などと書いてあるので、いかにもメールなどで通知が行きそうですが。

メール通知をしたい場合は、プラグインなどで対応できるようです。
http://ja.forums.wordpress.org/topic/3176

WordPress 投稿を日付順の降順で取得

WordPress

WordPress 投稿を日付の降順(新しい順)で取得

query_postsを利用する方法ももちろんありますが、ここではquery_postsをもうすでに使用してしまったなどで使えない場合のために、get_posts関数を利用する方法を書いておきます。

たとえば、カテゴリー18の投稿を5件、新しい順に取得して表示するサンプルです。

 <div class="new_info">
  <?php
   //query_posts( 'cat=18&orderby=date&posts_per_page=5' );
 
    $args = array('category'=>18,
          	'numberposts' => 5,
 		'order'=>'DESC',
 		'orderby'=>'post_date');
 										
 	$posts = get_posts( $args );
 	
 	if ($posts) :
    ?>
  <table class="news">
    <?php foreach  ( $posts as $post ): setup_postdata($post); ?>
    	  <th><?php echo get_post_time('d M Y'); ?></th>
 	  <td><div>

<?php $the_title = get_the_title(); echo ($the_title== "") ? 'タイトルなし' : $the_title; ?></a> </div></td> </tr> <?php endforeach;; ?> </table> <?php endif; wp_reset_query(); ?> </div>

get_postsについて
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts

ちなみに、query_postsはループをネストして使えない、というのは下記に書いてあります。

Secondary Loops

To create secondary listings (for example, a list of related posts at the bottom of the page, or a list of links in a sidebar widget), try making a new instance of WP_Query or use get_posts().

http://codex.wordpress.org/Function_Reference/query_posts