在保存 post 的同时在 wordpress 中获取自定义字段值,并将这些值保存在数据库中的不同 table 中

get custom fields value in wordpress while saving the post and save these values in different table in db

我使用 ACF

创建了 2 个自定义 post 类型

1 是复选框,元键 = google_search

第二个是文本字段,元键 = search_keyword

发布时 post 我想检查 google_search 是否被选中并且 search_keyword 中有一个值然后

  1. 获取 search_keyword 值并保存到自定义 table
  2. 如果 search_keyword 为空则使用 post 的标题并将其保存到自定义 table.

我在 functions.php 和 post.php(两者)中尝试了这段代码,但没有成功,

add_action('save_post', 'googleSearch');

function googleSearch()
{
global $wpdb;

if ( $_POST['google_results'] == "Y") // if checkbox (google_search) is checked
{
    if ($_POST['search_keyword'] != "") // if search_keyword has value
    {
        $sSearchKeyword = get_field('search_keyword');
    }

    else
    {
        //if search_keyword is empty then use post title as keyword.
        $sSearchKeyword = get_the_title( ); 
    }

    $wpdb->query("INSERT INTO tbl_keyword SET post_id = '$post_ID',
                                              keyword = '$sSearchKeyword'");
}
}

任何帮助如何在保存时获取自定义字段值 post 并将这些值保存在数据库中。

如果您没有在 wordpress 循环中使用函数 get_field,那么您必须定义 post.

get_field('search_keyword', $post_ID);

var_dump$post_ID来确认这个变量实际上持有post id。