質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

717閲覧

(WordPress) カスタムフィールドの情報による投稿のソートについて

Shun0722

総合スコア16

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/01/20 07:41

WordPressにおいて、add_meta_box()を用い、チェックボックスで構成されるカスタムフィールドを作成しました。
(下記例では、「おすすめ記事にする」、「特集記事にする」設定を付与できるチェックボックスを作ったと過程しています)

データベースへの保存までは上手くいったようなのですが、例えば「おすすめ記事にする」にチェックを入れた記事一覧を取得する部分でつまずいてしまいました。クエリの変数設定方法に問題がある気がするのですが、どなたかアドバイスいただけないでしょうか?

PHP

1 /*メタボックスの追加*/ 2 function recomend_checkbox() { 3 add_meta_box( 4 'my_sectionid', 5 'おすすめ記事の設定', 6 'recomend_checkbox_field', 7 'post', 8 'advanced', 9 ); 10 } 11 add_action('admin_menu', 'recomend_checkbox'); 12 13 14 15 /*カスタムフィールドの作成と値のセット*/ 16 function recomend_checkbox_field() { 17 global $post; 18 $get_recomend = get_post_meta( $post->ID,'recomend',true ); 19 $recomend = $get_recomend ? $get_recomend : array(); 20 $data = array( 21 array('text' => 'おすすめ記事に設定する', 'value' => 1), 22 array('text' => '特集記事に設定する', 'value' => 2) 23 ); 24 ?> 25 26 <?php 27 wp_nonce_field('wp-nonce-key', '_wp_nonce'); ?> 28 29 <?php foreach ( $data as $d ) { 30 if ( in_array($d['value'], $tools) ) { $check = "checked"; } else { $check = ""; } 31 echo '<label><input type="checkbox" name="recomend[]" value="' . esc_attr($d['value']) . '" ' . $check . '>' . esc_html($d['text']) . '</label><br>'; 32 } ?> 33 <?php 34 } 35 36 /*保存用の関数*/ 37 function save_recomend_field($post_id) { 38 if ( isset($_POST['_wp_nonce']) && $_POST['_wp_nonce'] ) { 39 if ( check_admin_referer('wp-nonce-key', '_wp_nonce') ) { 40 if ( isset($_POST['recomend']) && $_POST['recomend'] ) { 41 update_post_meta( $post_id, 'recomend', $_POST['recomend'] ); 42 } else { 43 delete_post_meta( $post_id, 'recomend', get_post_meta($post_id, 'recomend', true) ); 44 } 45 } 46 } 47 } 48 add_action('save_post', 'save_recomend_field'); 49 50 /*表示用の関数*/ 51 function recomend_article() { 52 //↓この部分に問題があると考えています。 53 $args = array( 54 'meta_query' => array( 55 array ( 56 'key' => 'recomend', 57 'value' => 1, 58 'compare' => '=' 59 ) 60 ) 61 ); 62 //↑この部分に問題があると考えています。 63 64 $query = new WP_Query($args); 65 if ($query->have_posts()) : 66 while ($query->have_posts()) : 67 $query->the_post(); 68 69 ?> 70 <div> 71 <p> 72 <?php the_title(); ?> 73 </p> 74 </div> 75 <?php 76 endwhile; 77 endif; 78 wp_reset_postdata(); 79 } 80 81

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

http://www.durangowebdevelopment.com/creating-featured-post-meta-box-checkbox/
ここで解決しました。お騒がせしました。

投稿2021/01/22 02:32

Shun0722

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問