プラグインを使用せずfunctions.phpへの追記で、
カスタム投稿タイプにカスタムフィールドを設置したのですが、
ファイルの選択をし、更新ボタンを押すと、投稿画面では「ファイルが選択されていません。」の状態に戻り、
実際のページでも画像が出力されていない判定になります。
以下コードになります。
##functions.php
参考サイト:https://fit-jp.com/customfield/
php
1<?php 2// 固定カスタムフィールドボックス 3function add_work_fields() { 4 //add_meta_box(表示される入力ボックスのHTMLのID, ラベル, 表示する内容を作成する関数名, 投稿タイプ, 表示方法) 5 //第4引数のpostをpageに変更すれば固定ページにオリジナルカスタムフィールドが表示されます(custom_post_typeのslugを指定することも可能)。 6 //第5引数はnormalの他にsideとadvancedがあります。 7 add_meta_box( 'work_setting', '実績写真', 'insert_work_fields', 'work', 'normal'); 8} 9add_action('admin_menu', 'add_work_fields'); 10 11 12// カスタムフィールドの入力エリア 13function insert_work_fields() { 14 global $post; 15 16 //下記に管理画面に表示される入力エリアを作ります。「get_post_meta()」は現在入力されている値を表示するための記述です。 17 echo '画像1: <input type="file" name="work_pic1" value="'.get_post_meta($post->ID, 'work_pic1', true).'" size="50" /><br>'; 18 echo '画像2: <input type="file" name="work_pic2" value="'.get_post_meta($post->ID, 'work_pic2', true).'" size="50" /><br>'; 19 echo '画像3: <input type="file" name="work_pic3" value="'.get_post_meta($post->ID, 'work_pic3', true).'" size="50" /> <br>'; 20 21} 22 23// カスタムフィールドの値を保存 24function save_work_fields( $post_id ) { 25 if(!empty($_POST['work_pic1'])){ //題名が入力されている場合 26 update_post_meta($post_id, 'work_pic1', $_POST['work_pic1'] ); //値を保存 27 }else{ //題名未入力の場合 28 delete_post_meta($post_id, 'work_pic1'); //値を削除 29 } 30 31 if(!empty($_POST['work_pic2'])){ 32 update_post_meta($post_id, 'work_pic2', $_POST['work_pic2'] ); 33 }else{ 34 delete_post_meta($post_id, 'work_pic2'); 35 } 36 37 if(!empty($_POST['work_pic3'])){ 38 update_post_meta($post_id, 'work_pic3', $_POST['work_pic3'] ); 39 }else{ 40 delete_post_meta($post_id, 'work_pic3'); 41 } 42 43} 44add_action('save_post', 'save_work_fields'); 45?>
##archives.php
php
1 <article class="work_one"> 2 <a href="<?php the_permalink(); ?>"> 3 <div class="work_pic"><?php echo get_post_meta($post->ID, 'work_pic1', true); ?></div> 4 <div class="work_case"><?php the_title(); ?></div> 5 </a> 6 </article>
##archives.phpの出力結果
html
1 2 <article class="work_one"> 3 <a href="正しいURL"> 4 <div class="work_pic"></div> 5 <div class="work_case">タイトル</div> 6 </a> 7 </article> 8
と表示されるため、入力がうまくいってないのかなと推測したのですが、
phpのバージョンにより、他のプラグインでは入力がうまくいかない事例を見つけたので、
htaccess
1php_value max_input_vars 10000
を追記してみましたが、うまくいきませんでした。
念の為、使用しているサーバーはロリポップです。
よろしくお願いします。