wordpress > wp-admin > admin-ajax
<?php /** * WordPress Ajax Process Execution * * @package WordPress * @subpackage Administration * * @link https://codex.wordpress.org/AJAX_in_Plugins */ /** * Executing Ajax process. * * @since 2.1.0 */ // header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Origin: http://eggboys100.loacl/archives/47"); define( 'DOING_AJAX', true ); if ( ! defined( 'WP_ADMIN' ) ) { define( 'WP_ADMIN', true ); } /** Load WordPress Bootstrap */ require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' ); /** Allow for cross-domain requests (from the front end). */ send_origin_headers(); // Require an action parameter if ( empty( $_REQUEST['action'] ) ) wp_die( '0', 400 ); /** Load WordPress Administration APIs */ require_once( ABSPATH . 'wp-admin/includes/admin.php' ); /** Load Ajax Handlers for WordPress Core */ require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' ); @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); @header( 'X-Robots-Tag: noindex' ); send_nosniff_header(); nocache_headers(); /** This action is documented in wp-admin/admin.php */ do_action( 'admin_init' ); $core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache', 'autocomplete-user', 'dashboard-widgets', 'logged-in', ); $core_actions_post = array( 'oembed-cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link', 'delete-meta', 'delete-post', 'trash-post', 'untrash-post', 'delete-page', 'dim-comment', 'add-link-category', 'add-tag', 'get-tagcloud', 'get-comments', 'replyto-comment', 'edit-comment', 'add-menu-item', 'add-meta', 'add-user', 'closed-postboxes', 'hidden-columns', 'update-welcome-panel', 'menu-get-metabox', 'wp-link-ajax', 'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink', 'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order', 'save-widget', 'delete-inactive-widgets', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', 'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs', 'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail', 'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'crop-image', 'generate-password', 'save-wporg-username', 'delete-plugin', 'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme', 'install-theme', 'get-post-thumbnail-html', 'get-community-events', 'edit-theme-plugin-file', 'wp-privacy-export-personal-data', 'wp-privacy-erase-personal-data', 'update-try-gutenberg-panel', ); // Deprecated $core_actions_post_deprecated = array( 'wp-fullscreen-save-post', 'press-this-save-post', 'press-this-add-category' ); $core_actions_post = array_merge( $core_actions_post, $core_actions_post_deprecated ); // Register core Ajax calls. if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get ) ) add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 ); if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post ) ) add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 ); add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 ); add_action('wp_ajax_tell_me', 'tell_me'); add_action('wp_ajax_nopriv_tell_me', 'tell_me'); function tell_me() { $res = array(); $id = 47; //任意の投稿ID $res[0] = get_the_title($id); $res[1] = get_post_meta($id,'latitude',true); $res[2] = get_post_meta($id,'longitude',true); echo json_encode($res, JSON_UNESCAPED_UNICODE); die(); } if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) ) { wp_die( '0', 400 ); } /** * Fires authenticated Ajax actions for logged-in users. * * The dynamic portion of the hook name, `$_REQUEST['action']`, * refers to the name of the Ajax action callback being fired. * * @since 2.1.0 */ do_action( 'wp_ajax_' . $_REQUEST['action'] ); } else { // If no action is registered, return a Bad Request response. if ( ! has_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ) ) { wp_die( '0', 400 ); } /** * Fires non-authenticated Ajax actions for logged-out users. * * The dynamic portion of the hook name, `$_REQUEST['action']`, * refers to the name of the Ajax action callback being fired. * * @since 2.8.0 */ do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); } // Default status wp_die( '0' );
smartphoneApp > index.html
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Ionic App</title> <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"> <link rel="manifest" href="manifest.json"> <meta name="theme-color" content="#4e8ef7"> <!-- add to homescreen for ios --> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <!-- cordova.js required for cordova apps (remove if not needed) --> <script src="cordova.js"></script> <script type="text/javascript"> console.log("Hello"); </script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ alert("jQueryファイルの読み込み完了でーす。"); }); </script> <script> var wp_url_admin_ajax = 'http://eggboys100.loacl/wp-admin/admin-ajax.php'; jQuery(function ($){ $.ajax({ type: 'POST', dataType: 'json', crossDomain: true, url: wp_url_admin_ajax, data: { action : 'tell_me' }, success: function(response){ console.log(response); mark(response); //ここで外部に記述している関数mark(引数:座標データ)にwordpressとの通信によって得られた値を送っている。 } }); }); </script> <script www="jquery-3.3.1.min.js"></script> <script www="jquery.xdomainajax.js"></script> <script type="text/javascript"> $.ajax({ url: 'http://eggboys100.loacl/archives/47', type: "GET", success: function(res) { console.log(res); } }); </script> <script> var wp_url_admin_ajax = 'http://192.168.33.10/wp-admin/admin-ajax.php'; </script> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng(35.658704,139.745408); var opts = { zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map (document.getElementById("map_canvas"), opts); var styleOptions = [{ featureType: 'all', elementType: 'labels', stylers: [{ visibility: 'on' }] }, { featureType: 'all', elementType: 'geometry', stylers: [{ hue: '#6d4d38' }, { lightness: '50' }, { saturation: '-70' }, { gamma: '0.05' }, { invert_lightness:true}] }]; var lopanType = new google.maps.StyledMapType(styleOptions); map.mapTypes.set('noText', lopanType); map.setMapTypeId('noText'); var m_position1 = new google.maps.LatLng(35.658704,139.745408); var marker1 = new google.maps.Marker({ position: m_position1, map: map, }); var m_position2 = new google.maps.LatLng(35.66046931,139.7293353); var marker2 = new google.maps.Marker({ position: m_position2, map: map }); } </script> </head> <body onload="initialize()">> <!-- Ionic's root component and where the app will load --> <ion-app></ion-app> <!-- The polyfills js is generated during the build process --> <script src="build/polyfills.js"></script> <!-- The vendor js is generated during the build process It contains all of the dependencies in node_modules --> <script src="build/vendor.js"></script> <!-- The main bundle js is generated during the build process --> <script src="build/main.js"></script> <p>Google Maps v3 APIを使ったサンプル地図。</p> <div id="map_canvas" style="width:500px; height:300px"><div> </body> </html>