公式にある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['my_custom_field']; 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
「[WP] Post, Page, and Attachment Functions」への3件のフィードバック