Files
DOCKER_wordpress/srcs/plugins/map_prof/map_prof.php
2022-10-29 20:57:06 +02:00

116 lines
3.0 KiB
PHP

<?php
/*
Plugin Name: map_prof
Plugin URI:
Description: add/remove locations on map at publication/deletion of posts
Author: hugogogo
Version: 1.0.0
Author URI:
*/
add_action( 'init', 'my_init_script' );
function my_init_script() {
$style_path = plugins_url('style.css', __FILE__);
wp_enqueue_style('my_style', $style_path);
}
// if block theme : https://wordpress.org/support/topic/twenty-twenty-two-cpt-template-error-theme-without-header-is-deprecated/
function add_map_api(){
?>
<script type="text/javascript" src="https://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript" defer>
//<![CDATA[
import Map from 'ol/Map';
import View from 'ol/View';
import OSM from 'ol/source/OSM';
import TileLayer from 'ol/layer/Tile';
new Map({
layers: [
new TileLayer({source: new OSM()}),
],
view: new View({
center: [0, 0],
zoom: 2,
}),
target: 'map',
});
//]]>
</script>
<?php
}
//add_action('wp_head', 'add_map_api');
function print_content($content){
// print only on the page 'map', and other conditions
// https://developer.wordpress.org/reference/hooks/the_content/
if (!( is_page('map_prof') && in_the_loop() && is_main_query() ))
return $content;
// https://developer.wordpress.org/reference/functions/get_posts/
$get_posts_args = array(
'numberposts' => -1,
'post_status' => 'publish',
);
$posts_list = get_posts($get_posts_args);
$content .= "<p>";
$content .= "nb posts published : ";
$content .= count($posts_list);
$content .= "</p>";
foreach ($posts_list as $post_value) {
$content .= "<div>";
$content .= "- post title: [";
$content .= $post_value->post_title;
$content .= "] - content: [";
$content .= $post_value->post_content;
$content .= "]";
$content .= "</div>";
}
// TESTS : print posts full content
//
//$posts_list = get_posts($args);
//$content .= "<p>";
//$content .= "nb posts published : ";
//$content .= count($posts_list);
//$content .= "</p>";
//foreach ($posts_list as $post_key => $post_value) {
// $content .= "<p>";
// $content .= "post content : ";
// $content .= $post_key;
// $content .= " : ";
// $content .= "<br>";
// foreach ($post_value as $key => $value) {
// $content .= "- [";
// $content .= $key;
// $content .= "]: [";
// $content .= $value;
// $content .= "]<br>";
// }
// $content .= "</p>";
//}
$content .= '<div id="map"></div>';
$content .= '<script>
function initMap() {
var location = {lat: 38.8833, lng: -77.0167};
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 12,
center: location
});
var marker = new google.maps.Marker({
position: location,
map: map
});
}
</script>';
$content .= '<script async defer src="https://maps.googleapis.com/maps/api/js?sensor=false&key=AIzaSyCvdGV2ssD4ov4a9CuIlQhoJyz5gWWiSvE&callback=initMap"></script>';
return $content;
};
add_action('the_content', 'print_content', 1);
?>