帮助使用ACF/SAVE_POST挂钩连接到Untappd API和UPDATE_FIELD

时间:2015-11-12 作者:kval87

我试图做到的是:当我保存或更新帖子时,我想访问Untappd API,获取到图像的链接,并用该链接更新ACF字段。我正在尝试使用acf/save\\U post挂钩来完成此操作。

以下是我目前掌握的情况:

 function brewImageUpdater( $post_id ){
        require_once \'Pintlabs/Service/Untappd.php\';
        $config = array(
            \'clientId\'     => \'XXXXXX\',
            \'clientSecret\' => \'XXXXXX\',
            \'redirectUri\'  => \'stuff.com\',
            \'accessToken\'  => \'\'
        );

        $untappdd = new Pintlabs_Service_Untappd($config);

        $brid = get_field(\'untappd_brewery_id\', $post_id);
        $brid= int($brid);

        try {
            $feed = $untappd->breweryInfo($brid);
        } 
        catch (Exception $e) {
            echo \'Unable to connect to the Untappd API<br />\';
        }
        $bi = $feed->response->brewery->brewery_label;

        $fkey = "field_5609f19dcec5d";
        update_field($fkey, $bi, $post_id);
    }

    add_action( \'acf/save_post\', \'brewImageUpdater\', 20);
存在一个名为untappd\\u brewery\\u id的ACF字段,允许我连接到untappd的API。我正在使用Pintlab\'s Untappd Class to connect to the API. 尝试创建Pintlabs\\u Service\\u Untappd类的新实例时,此代码中断。我试图创建一个函数来创建该类的新实例并在此函数中调用它,但这对我也不起作用。使用acf/save\\u post web挂钩时是否可以连接到API?

任何帮助都将不胜感激。谢谢

1 个回复
最合适的回答,由SO网友:labm0nkey 整理而成

因为你的require_once \'Pintlabs/Service/Untappd.php\'; 是相对于;“当前”;文件和应为绝对路径。我不知道你在哪里使用这个钩子,但根据位置,它应该是这样的:

  1. ABSPATH 是您的wordpress根目录,“自定义路径”应该是指向Pintlabs目录的路径
    require_once ABSPATH.\'custom-path/\'.\'Pintlabs/Service/Untappd.php\';

  2. get_template_directory() 如果在主题(functions.php等)中使用它。注意额外的\'/\' 之后get_template_directory()
    require_once get_template_directory().\'/custom-path/\'.\'Pintlabs/Service/Untappd.php\';

  3. plugin_dir_path( __FILE__ ) 当在插件中时。您必须在插件主文件中使用此函数,如/my-plugin/my-plugin.php 否则您将获得plugins子目录。最好使用define() 在插件主文件中。

    在里面my-plugin/my-plugin.php
    define("myplugin_dir",plugin_dir_path( __FILE__ ));

    其他地方
    require_once myplugin_dir.\'/Pintlabs/Service/Untappd.php\';

相关推荐

创建帖子,包含来自远程API的数据

我需要一些帮助和指导。因此,我正在开发一个网站(自定义主题),目标是从远程API获取数据。我希望能够将数据存储在各个帖子中(一种自定义帖子类型),当有人向远程API添加或删除数据时,它应该会更新网站上的帖子。我使用的API的结构如下:https://pippinsplugins.com/edd-api/products我知道如何从中获取数据并解码JSON等。$url = \'https://pippinsplugins.com/edd-api/products\'; $username