[WP] Post, Page, and Attachment Functions

公式にあるFunction Referenceの自分用適当メモその1。
Post, Page, and Attachment Functionsの関数リストを上から順に書き散らした。
分からないのは華麗にスルー。

とんでもなく長くなった。分けた方がいいかな…

wp_trim_excerpt($text)

抜粋がないときの本文処理に使われている関数。
ループ内で使用するとget_the_contentで本文を取得して55文字(多分単語数)でカットして[…]付きで返す。
ループ外で引数が空だとエラー。ループ外で引数に文字列入れた場合はそのままスルーされる。

get_attached_file($attachment_id, $unfiltered)

?attachment_id=nで表示されるファイルのメタデータを返す。
attached fileは記事に添付されたファイル、という意味らしい。メディアファイルのことかな。

update_attached_file($attachment_id, $file )

?attachment_id=nで表示されるファイルのメタデータを更新する。

get_children($args $output)

記事の情報を多次元配列で返す。親を指定した場合は子だけ。指定しなければ全ての記事

get_extended($post)

moreタグで記事を前後に分けて配列で返す。

print_r(get_extended(get_the_content()));

get_post($post_id, $output)

$postで指定した記事に関する情報を取得する。
以下サンプルは、ID7の記事タイトルを取得

<?php
$my_id = 7;
$post_id_7 = get_post($my_id); 
$title = $post_id_7->post_title;
?> 

get_post_mime_type($post_id)

記事IDを引数に入れるとファイルのMIME 型を返す。
get_postと変わらない。

<?php
$my_id = 1;
$post = get_post($my_id); 
echo $post->post_mime_type; ?>

get_post_status($post_id))

記事の状態(公開・草稿・非公開)を返す。get_postと同じ。

get_post_type($post_id))

記事の種類(post,page)を返す。get_postと同じ。

get_posts(‘arguments’)

get_childrenに似た多次元配列を返す。
独自のループを作成したりできる。query使わないから楽かもしれない。

カテゴリー1にある記事のタイトルを5件だけ出力するサンプル。

 <ul>
 <?php
 global $post;
 $myposts = get_posts('numberposts=5&offset=1&category=1');
 foreach($myposts as $post) :
 ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
 <?php endforeach; ?>
 </ul>

add_post_meta($post_id, $meta_key, $meta_value, $unique)

指定した記事にカスタムフィールドを追加する。
もし$uniqueをtrueにして指定したキーが存在した場合、この関数はfalseを返して値は変更・上書きされない。

delete_post_meta($post_id, $key, $value)

指定した記事に存在するカスタムフィールドを削除する。

update_post_meta($post_id, $meta_key, $meta_value, $prev_value);

指定した記事に存在するカスタムフィールドの値を更新する。
更新に成功するとtrueを返す。指定したキーが存在しない場合はfalseを返す。

get_post_meta($post_id, $key, $single);

指定した記事にある指定したカスタムフィールドキーの値を返す。
カスタムフィールドについてはこちらを参照

get_post_custom($post_id);

指定した記事にあるカスタムフィールドを全て配列で返す。
foreach等のループで処理する必要がある。

以下のサンプルは、ID72の記事で設定されているmy_custom_fieldというキーの値を出力するソースです。
カスタムフィールドは3つ設定されており、値は”dogs”, “47”, “This is another value”です。

<?php
  $custom_fields = get_post_custom();
  $my_custom_field = $custom_fields&#91;'my_custom_field'&#93;;
  foreach ( $my_custom_field as $key => $value )
    echo $key . " => " . $value . "<br />";
?>

上記コードの出力結果は次の通り

0 => dogs
1 => 47
2 => This is another value

get_post_custom_keys($post_id)

指定したIDの記事で設定されているカスタムフィールドのキーだけ配列で返す。

get_post_custom_values($key, $post_id)

指定したIDの記事で設定されているカスタムフィールドの値だけ配列で返す。

add_meta_box(‘id’, ‘title’, ‘callback’, ‘page’, ‘context’);

WordPress2.5で追加された関数。投稿画面の「詳細オプション」にオプションタブを追加する。
この記事は詳細オプションの上(タグやカテゴリーと同じ位置)だが、この関数だと抜粋やトラックバックと同じ位置になる。

wp_delete_post($postid)

IDで指定した記事を削除する。

wp_get_post_categories($post_id,$args)

記事のカテゴリーを全て返す。デフォルトの返り値はカテゴリーID。

wp_get_recent_posts($num)

最新記事を多次元配列で返す。$numは出力する記事の数で、デフォルトは10です。

wp_get_single_post($postid, $mode)

$postidで指定した記事を1つ取得する。デフォルトの返り値はオブジェクト形式。

wp_insert_post($postarr)

記事を直接データベースに追加する。これは完全にプラグイン用関数。
$postarrのデフォルト値は下記参照

$defaults = array('post_status' => 'draft', 'post_type' => 'post', 'post_author' => $user_ID,
'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '',
'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '');

wp_update_post($postarr)

記事を更新する。wp_insert_postと同じ。

wp_publish_post($post_id)

IDで指定した記事のステータスを「公開」にする。

wp_set_post_categories($post_ID, $post_categories)

IDで指定した記事のカテゴリーを設定する。$post_categoriesは配列。

get_all_page_ids()

全てのページIDを配列で返す。

get_page($page_id, $output, $filter)

get_postと同じ。IDで指定したページを取得して返す。
返り値($output)のデフォルトはオブジェクト。

get_page_by_path($page_path, $output)

URL形式で指定するget_page

get_page_by_title($page_title, $output)

ページのタイトルで指定するget_page

get_page_children($page_id, $pages)

IDで指定したページの子ページを返す。

get_page_hierarchy($posts, $parent)

ページの階層を配列で返す。

get_page_uri($page_id)

指定したIDのページURL(nicename)を返す。

get_pages()

get_postsと同じ。ページの情報を多次元配列で返す。

generate_page_uri_index()

関数が見つからない…

wp_list_pages(‘arguments’);

ページをリスト形式で出力するテンプレートタグ。

is_local_attachment($url)

記事に添付されているファイルが存在するかどうか調べる。
$urlはオプション設定のurlと同じ、かつ?attachment_id=nの形式でなければならない。

<?php 
$e = is_local_attachment('http://localhost/wordpress/?attachment_id=0');
if($e=='true')
echo 'true';
else
echo 'false'; ?>

wp_insert_attachment()

wp_insert_postと同じ。データベースに直接ファイルを追加する。

wp_delete_attachment( $postid )

IDで指定した記事に添付されているファイルを削除する。

wp_get_attachment_metadata( $post_id, $unfiltered)

指定した記事に添付されているファイルのメタデータを返す。

wp_update_attachment_metadata( $post_id, $data )

指定した記事に添付されているファイルを更新する。

wp_get_attachment_url($id)

IDで指定したファイルのURLを返す。

wp_get_attachment_thumb_file($id)

IDで指定したファイルのサムネイルを返す。
返り値の形式が謎。

wp_attachment_is_image($id)

IDで指定したファイルが画像かどうかチェックする。
返り値はtrue/false

wp_mime_type_icon($mime)

$mimeで指定したmine typeアイコンを返す。文字列またはboolian
$mimeで指定できるのは、archive,audio,code,document,interactive,spreadsheet,text,video。
それぞれ指定したアイコンがwp-includes/images/crystalに用意されています。

wp_check_for_changed_slugs($post_id)

ページスラッグが変更できるかどうか確認する。返り値はpostID

1件のコメント

Leave a Comment.