从多个表

时间:2015-10-29 23:03:55

标签: mysql wordpress google-maps

我正在使用WP Google地图应用。这允许地图标记数据在后端输入并显示在前端的地图上。

我正在尝试对此进行调整,以便作者可以创建帖子,并且帖子中的数据会填充WP Google地图表,以便它显示在地图上。换句话说,允许非管理员用户使用其他字段创建地图标记。

WP Google Maps的主要信息存储在名为wp_wpgmza的表中。我曾尝试编写一个SQL触发器,每次发布新帖子时都会使用来自wp_posts和wp_postmeta的数据更新此表,但我无法破解它。关于从两个表和wp_postmeta

的结构中提取的东西

有关此问题的其他方法的建议吗?

谢谢D

1 个答案:

答案 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是您可以用来在帖子数据中达到峰值和/或传递给谷歌地图功能或插入表格的参数。

有用的资源: