我正在使用WP Google地图应用。这允许地图标记数据在后端输入并显示在前端的地图上。
我正在尝试对此进行调整,以便作者可以创建帖子,并且帖子中的数据会填充WP Google地图表,以便它显示在地图上。换句话说,允许非管理员用户使用其他字段创建地图标记。
WP Google Maps的主要信息存储在名为wp_wpgmza的表中。我曾尝试编写一个SQL触发器,每次发布新帖子时都会使用来自wp_posts和wp_postmeta的数据更新此表,但我无法破解它。关于从两个表和wp_postmeta
的结构中提取的东西有关此问题的其他方法的建议吗?
谢谢D
答案 0 :(得分:1)
在WordPress中,钩子和过滤器通常用于完成大多数事情。 在保存/插入帖子之前,您可以轻松使用以下调用您的函数的钩子:
do_action('save_post', $post_ID, $post);
do_action('wp_insert_post', $post_ID, $post);
以下是一个示例用法:
function my_function($post_ID, $post) {
}
add_action('save_post', 'my_function', 2);
在my_function中,您可以使用$ wpdb-> insert将数据输入到表中。
function my_function($post_ID, $post) {
global $wpdb;
$table = $wpdb->prefix . 'wpgmza';
$data = array(
'column1' => 'value1',
'column2' => 'value2'
);
$wpdb->insert($table , $data);
}
add_action('save_post', 'my_function', 2);
或者,您可以使用function_exists()和插件本身使用的函数插入到地图表中。
function my_function($post_ID, $post) {
if (function_exists('some_google_map_app_function')) {
some_google_map_app_function();
}
}
add_action('save_post', 'my_function', 2);
注意: $ post_ID,$ post是您可以用来在帖子数据中达到峰值和/或传递给谷歌地图功能或插入表格的参数。
有用的资源: