wordpressからMAPを挿入して出力できるようにコードを書きましたが、WordPressの方で、テキストエリアが表示されません。(他の三つは出力されています。)
いろいろ原因を探ったのですが、わかりません。
このような感じです(MAP入力欄だけありません)↓
デバッグで原因を確認したところ、いじってもないファイルでエラーがあると言われました。
debug
1[11-Apr-2020 09:15:49 UTC] PHP Warning: call_user_func() expects parameter 1 to be a valid callback, function 'custom_area3' not found or invalid function name in /Applications/MAMP/htdocs/wordpress/wp-admin/includes/template.php on line 1345 2
分かる方助けてください。
以下ソースコードです
php
1<?php 2// カスタムヘッダー画像の配置 3$custom_header_defaults = array( 4 'default-image' => get_bloginfo('template_url').'/images/headers/logo.png', 5 'header-text' => false //ヘッダー画像上にテキストを被せる 6); 7// カスタムヘッダー機能を有効にする 8add_theme_support('custom-header', $custom_header_defaults); 9 10// カスタムメニュー使用 11register_nav_menu('mainmenu', 'メインメニュー'); 12 13// ページネーション 14function pagination($pages = '', $range = 2) 15{ 16 $showitems = ($range * 2) + 1; //表示するページ数(5ページ表示) 17 18 global $paged; //現在のページ数 19 if(empty($paged)) {$paged = 1;} //デフォルトのページ 20 21 if($pages == '') 22 { 23 global $wp_query; 24 $pages = $wp_query->max_num_pages; //全ページを取得 25 if(!$pages) //全ページ数がからの場合は、1とする 26 { 27 $pages = 1; 28 } 29 } 30 31 if(1 != $pages) //全ページが1でない場合はページネーションを表示する 32 { 33 echo "<div class=\"pagenation\">\n"; 34 echo "<ul>\n"; 35 // Prev:現在のページの値が1より大きい場合は表示 36 if($paged > 1) echo "<li class=\"prev\"><a href='".get_pagenum_link($paged - 1)."'>Prev</a></li>\n"; 37 38 for($i = 1; $i <= $pages; $i++) 39 { 40 if(1 != $pages && ( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) 41 { 42 // 三項演算子での条件分岐 43 echo ($paged == $i)? "<li class=\"active\">".$i."</li>\n":"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>\n"; 44 } 45 46 } 47 // Next:総ページ数より現在のページ数が小さい場合は表示 48 if($paged < $pages) echo "<li class=\"next\"><a href=\"".get_pagenum_link($paged + 1)."\">Next</a></li>\n"; 49 echo "</ul>\n"; 50 echo "</div>\n"; 51 } 52} 53 54// カスタムフィールド 55 56// 投稿ページへ表示するカスタムボックスを定義する 57add_action('admin_menu', 'add_custom_inputbox'); 58// 追加した表示項目のデータ更新・保存のためのアクションフック 59add_action('save_post', 'save_custom_postdata'); 60 61// 入力項目がどの投稿タイプのページに表示され楽設定 62function add_custom_inputbox(){ 63 // 第1引数:編集画面のhtmlに挿入されるid属性名 64 // 第2引数:管理画面に表示されるカスタムフィールド名 65 // 第3引数:メタボックスの中に出力される関数名 66 // 第4引数:管理画面に表示するカスタムフィールドの場所(postなら投稿、pageなら固定ページ) 67 // 第5引数:配置される順序 68 add_meta_box('top_img_id', 'トップ画像URL入力欄', 'custom_area4', 'page', 'normal'); 69 add_meta_box('about_id', 'ABOUT入力欄', 'custom_area', 'page', 'normal'); 70 add_meta_box('recruit_id', 'RECRUIT入力欄', 'custom_area2', 'page', 'normal'); 71 add_meta_box('map_id', 'MAP入力欄', 'custom_area3', 'page', 'normal'); 72} 73 74// 管理画面に表示される内容 75function custom_area(){ 76 global $post; 77 78 echo 'コメント :<textarea cols="50" rows="5" name="about_msg">'.get_post_meta($post->ID,'about',true).'</textarea><br>'; 79} 80 81function custom_area2(){ 82 global $post; 83 84 echo '<table>'; 85 for($i = 1; $i <= 8; $i++){ 86 echo '<tr><td>info'.$i.':</td><td><input name="recruit_info'.$i.'" value="'.get_post_meta($post->ID, 'recruit_info'.$i, true).'"></td></tr>'; 87 } 88 89 echo '</table>'; 90} 91 92function custom_area3(){ 93 global $post; 94 95 echo 'マップ :<textarea cols="50" rows="5" name="map">'.get_post_meta($post->ID,'map',true).'</textarea><br>'; 96} 97 98function custom_area4(){ 99 global $post; 100 101 echo 'トップ画像URL :<input type="text" name="img-top" value="'.get_post_meta($post->ID,'img-top',true).'"><br>'; 102} 103 104 105function save_custom_postdata($post_id){ 106 $about_msg = ''; 107 $recruit_data = ''; 108 $map = ''; 109 $img_top = ''; 110 111 // TOP IMAGE 112 if(isset($_POST['img-top'])){ 113 $img_top = $_POST['img-top']; 114 } 115 if($img_top !== get_post_meta($post_id, 'img-top', true)){ 116 update_post_meta($post_id, 'img-top', $img_top); 117 }elseif($img_top ==''){ 118 delete_post_meta($post_id, 'img-top', get_post_meta($post_id, 'img-top', true)); 119 } 120 121 // カスタムフィールドに入力された情報を取り出す 122 if(isset($_POST['about_msg'])){ 123 $about_msg = $_POST['about_msg']; 124 } 125 126 // 内容が変わていた場合、保存していた情報を更新する 127 if($about_msg !== get_post_meta($post_id, 'about', true)){ 128 update_post_meta($post_id, 'about', $about_msg); 129 }elseif($about_msg ==''){ 130 delete_post_meta($post_id, 'about', get_post_meta($post_id, 'about', true)); 131 } 132 133 // RECRUIT 134 for($i = 1; $i <= 8; $i++){ 135 if(isset($_POST['recruit_info'.$i])){ 136 $recruit_data = $_POST['recruit_info'.$i]; 137 } 138 if($recruit_data != get_post_meta($post_id, 'recruit_info'.$i, true)){ 139 update_post_meta($post_id, 'recruit_info'.$i, $recruit_data); 140 }elseif($recruit_data == ''){ 141 delete_post_meta($post_id, 'recruit_info'.$i, get_post_meta($post_id, 'recruit_info'.$i, true)); 142 } 143 } 144 145 // MAP 146 if(isset($_POST['map'])){ 147 $map = $_POST['map']; 148 } 149 if($map !== get_post_meta($post_id, 'map', true)){ 150 update_post_meta($post_id, 'map', $map); 151 }elseif($map ==''){ 152 delete_post_meta($post_id, 'map', get_post_meta($post_id, 'map', true)); 153 } 154 155} 156
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。