上へ戻る

まとめ:WordPressでget_posts+カスタムフィールドの検索一覧。

Pocket

20150313_1
Wordpress大好きです。

テンプレートをオリジナルにすればサイトも作れるし、Webサービスも作れる。
ブログ機能をカスタマイズすれば、各カテゴリの情報をカスタムフィールドで引き出して入れたりもできる。しかも全部無料というお得つき。

wp-login.phpもhtacessのIPアドレスで制限すればいいし、二段階認証をいれておけばセキュリティも強くできる。
今もアップデートが盛んで有志の人が世界中にいてどんどん良くなっていくWordpressという存在。より新しく良いCMSが出てくれば乗り換えの可能性もありますが、現状は特にないかと。

ということで、Wordpressでオリジナルテーマを作っている時に「この情報出してくるのって、どうするんだった?」という検索方法を自分用にまとめてみました。

カスタムフィールド使うと検索方法も融通がきくので、Wordpress使ってこれから何か作りたいという人は参考にどうぞー。


引き出した内容の取得方法。

$post_value = get_posts($args);
if($posts):foreach($post_value as $post):
$title = get_the_title();
$id = get_the_ID();
$guid = get_permalink();
$category= get_the_category($id);
$value_1 = get_post_meta($id , "カスタムフィールド名", true);
$value_img = get_post_meta($id , "カスタムフィールド名", true);
$value_img_id = get_post($value_img_1);
$value_img_id->guid;//value_imgのURL
$img = get_post_thumbnail_id($id);
$image_url = wp_get_attachment_image_src($img , '', true);
$image_url[0];//アイキャッチ画像のURL

?>



特定のポストからデータを取得する


$args = array(
'post_type'=>'ポスト名',
'post_status'=>'publish',
'posts_per_page'=>5
);



一つのカスタムフィールドから検索する


$args = array(
'post_type'=>'post',
'post_status'=>'publish',
'posts_per_page'=>5,
'meta_key' => 'キー名',
'meta_value' => '検索内容'
);




複数のカスタムフィールドから検索する


$args = array(
'post_type'=>'post',
'post_status'=>'publish',
'posts_per_page'=>5,
'meta_query' => array(
array('key'=>'キー名','value'=>検索内容),
array('key'=>'キー名','value'=>検索内容),
array('key'=>'キー名','value'=>検索内容)
         )
);



カスタムフィールドで並び替えする


$args = array(
'post_type'=>'post',
'post_status'=>'publish',
'posts_per_page'=>5,
'orderby'=>'meta_value',
'meta_key'=>'キー名',
'order'=>'ASC'
);



カスタムフィールドの値が特定の値より大きい内容を取得


$args = array(
'post_type'=>'post',
'post_status'=>'publish',
'posts_per_page'=>5,
'meta_key' => 'キー名',
'meta_value' => '検索内容',
'compare'=>'>'
);



一部のIDをのぞいて取得


$args = array(
'exclude' => ID名,
'post_type'=>'post',
'post_status'=>'publish',
'posts_per_page'=>5,
);

あわせて読みたいお勧め記事


    Fatal error: Uncaught Error: Call to undefined function split() in /home/japanese2017/start-now.link/public_html/100/wp-content/themes/basetheme/single.php:74 Stack trace: #0 /home/japanese2017/start-now.link/public_html/100/wp-includes/template-loader.php(74): include() #1 /home/japanese2017/start-now.link/public_html/100/wp-blog-header.php(19): require_once('/home/japanese2...') #2 /home/japanese2017/start-now.link/public_html/100/index.php(17): require('/home/japanese2...') #3 {main} thrown in /home/japanese2017/start-now.link/public_html/100/wp-content/themes/basetheme/single.php on line 74