WordPressカスタマイズ 俺的チートシート
Posted by admin at 8:19 日時 2012/06/09
WordPressのテーマ開発でよく使うコードをCodaのクリップに登録していてすごく便利なので、いまクリップに入っているものを公開します。ここに挙げたもの以外に条件分岐タグも登録していますが、Codexを見ればいいので割愛。クリップに登録したコードと、Twenty Elevenからのコピペで基本的にはさくさくテーマ開発できています。
Customizing Parse Query (in functions.php)
functions.phpからクエリーのカスタマイズ、pre_get_postsフックを使う方法。
参考:関数リファレンス/is_main_query, カスタムクエリ via WordPress Codex 日本語版
/* * Customizing Parse Query */ add_action( 'pre_get_posts', 'my_custom_query' ); if ( ! function_exists( 'my_custom_query' ) ): function my_custom_query($query) { if ( $query->is_main_query() && $query->is_archive() && !is_admin() ) { $query->set( 'post_type', 'my_post_type_name' ); $query->set( 'posts_per_page', '-1' ); } } endif; // my_custom_query
Debug Bar Trace Var
Debug Bar Extendar で値の確認をしたいとき。
dbgx_trace_var();
Echo Home URL
WordPressのサイトのURLの出力です。
<?php echo home_url( '/' ); ?>
Echo Nav Menu
カスタムメニューの出力、オプションの初期値は色々調整中。
$args = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'container_id' => '', 'menu_class' => 'menu', 'menu_id' => '', 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 'depth' => 0, 'walker' => '', 'theme_location' => '' ); wp_nav_menu( $args );
Echo Shortcode
ショートコードをテンプレート内で出力。
<?php echo do_shortcode('[]'); ?>
Echo Sidebar
if ( is_active_sidebar( 'sidebar' ) ) dynamic_sidebar( 'sidebar' );
Echo Stylesheet Directory
テーマのディレクトリのフルパスを出力
<?php echo get_stylesheet_directory_uri(); ?>/
Enqueue Script
主にfunctions.phpからテーマやプラグインで使うJavascriptの登録。
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Escape Attribute Value
HTML要素の属性に何かを突っ込むときのエスケープ
<?php echo esc_attr( ) ?>
Escape HTML Text
HTMLにテキストを出力するときのエスケープ
<?php esc_html( ) ?>
Escape URL
URLのエスケープ
<?php esc_url( , 'http' ); ?>
Get Attachment Image Src
IDを指定して画像の取得。カスタムフィールドテンプレートプラグインでアップした画像の出力が主な用途。
<?php $attachment_id = ; // attachment ID $image_attributes = wp_get_attachment_image_src( $attachment_id, 'full' ); // returns an array ?> <img src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>">
Get Category Link
カテゴリースラッグからアーカイブへのリンクURLを取得
$catObj = get_category_by_slug($category_slug); $link = get_category_link( $catObj->term_id );
Get Post Meta
カスタムフィールドの値を取得
$postmeta = get_post_meta( get_the_ID(), 'postmeta_name', true );
Get Post Terms
投稿のタクソノミーを取得。横着してカテゴリーでもカスタムタクソノミーでもこれで取ってる
$terms = get_the_terms( get_the_ID(), 'term_name' );
Get Post Thumbnail
アイキャッチ画像の取得
$thumbnail = get_the_post_thumbnail( get_the_ID(), 'thumbnail' );
Get Post Type
投稿タイプ名の取得
$posttype = get_post_type();
Get Posts by term
カテゴリースラッグからget_postsで投稿を取得する方法だけど、get_postsを使うときはここからスタートすることが多い
$catObj = get_category_by_slug($category_slug); $args = array( 'posts_per_page' => 10, 'category' => $catObj->term_id ); $myposts = get_posts($args); foreach ( $myposts as $post ) : setup_postdata( $post ); endforeach; // Reset Post Data wp_reset_postdata();
Get Template Part
テンプレートパーツの読み込み
get_template_part( $slug, $name );
ダウンロード
せっかくなのでダウンロードできるようにしておきました。Codaユーザーの方はもらってください。
余談ですが、いちいちコピペするはめになったので、.clips だけじゃなくCSVやXMLなどで書き出せるようにして欲しいなぁ…