前提・実現したいこと
(wordpress)(vagrant)
・管理メニューの追加
・formに入力した内容を 別ページに反映させる
発生している問題・エラーメッセージ
formのaction属性に送信先URLを指定し、
submitボタンを押すとエラー(500)が表示される。
エラーメッセージ このページは動作していません〇〇では現在このリクエストを処理できません。 HTTP ERROR 500
該当のソースコード
PHP
1<?php 2/* 3Plugin Name: プラグイン名 4*/ 5 6add_action( 'admin_menu', 'register_my_custom_menu_page' ); 7function register_my_custom_menu_page(){ 8 add_menu_page( 'プラグイン名', 'プラグイン名', 9 'manage_options', 'custompage', 'mt_settings_page', '', 5 ); 10} 11 12// mt_settings_page() は Test Settings サブメニューのページコンテンツを表示 13function mt_settings_page() { 14 15 // ユーザーが必要な権限を持つか確認する必要がある 16 if (!current_user_can('manage_options')) 17 { 18 wp_die( __('You do not have sufficient permissions to access this page.') ); 19 } 20 21 // フィールドとオプション名の変数 22 $opt_name_url = 'test_url'; 23 $opt_name_img = 'test_img'; 24 $opt_name_text = 'test_text'; 25 $hidden_field_name = 'mt_submit_hidden'; 26 27 // データベースから既存のオプション値を取得 28 $opt_val_url = get_option( $opt_name_url ); 29 $opt_val_img = get_option( $opt_name_img ); 30 $opt_val_text = get_option( $opt_name_text ); 31 32 // ユーザーが何か情報を POST したかどうかを確認 33 // POST していれば、隠しフィールドに 'Y' が設定されている 34 if( isset($_POST[ $hidden_field_name ]) && $_POST[ $hidden_field_name ] == 'Y' ) { 35 // POST されたデータを取得 36 $opt_val_url = $_POST[test][url]; 37 $opt_val_img = $_FILES[test][name]; 38 $opt_val_text = $_POST[test][text]; 39 40 // POST された値をデータベースに保存 41 update_option( $opt_name_url, $opt_val_url ); 42 update_option( $opt_name_img, $opt_val_img ); 43 update_option( $opt_name_text, $opt_val_text ); 44 45 // 画面に「設定は保存されました」メッセージを表示 46 47?> 48<div class="updated"><p><strong><?php _e('settings saved.', 'menu-test' ); ?></strong></p></div> 49<?php 50 51 } 52 53 // ここで設定編集画面を表示 54 55 echo '<div class="wrap">'; 56 57 // ヘッダー 58 59 echo "<h2>" . __( 'テストプラグイン ', 'menu-test' ) . "</h2>"; 60 61 // 設定用フォーム 62 63 ?> 64 65<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo(get_template_directory_uri()); ?>/page-83.php"> 66<h3>サンプル</h3> 67<input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y"> 68 69<p><?php _e("テキスト:", 'menu-test' ); ?> 70<input type="text" name="test[url]" value="<?php echo $opt_val_url; ?>" size="20"> 71</p> 72<p><?php _e("画像:", 'menu-test' ); ?> 73<input type="file" name="test[]" value="<?php echo $opt_val_img; ?>" size="20"> 74</p> 75<p><?php _e("テキスト:", 'menu-test' ); ?> 76<input type="text" name="test[text]" value="<?php echo $opt_val_text; ?>" size="20"> 77</p><hr /> 78 79<p class="submit"> 80<input type="submit" name="Submit" class="button-primary" value="<?php esc_attr_e('Save Changes') ?>" /> 81</p> 82 83</form> 84</div> 85 86<?php 87 88}
試したこと
・「vagrant」、本番環境で確認しました
補足情報(FW/ツールのバージョンなど)
php 7.2.26
wordpress 5.4.2
回答2件
あなたの回答
tips
プレビュー