function ocoyoacac_facebook_feed_shortcode() { $page_id = '1168118609995574'; $access_token = defined('OCOYOACAC_FACEBOOK_PAGE_TOKEN') ? OCOYOACAC_FACEBOOK_PAGE_TOKEN : ''; if (empty($access_token)) { return '

No se configuró el token de Facebook.

'; } $cache_key = 'ocoyoacac_facebook_feed_cache'; $posts = get_transient($cache_key); if ($posts === false) { $url = 'https://graph.facebook.com/v25.0/' . $page_id . '/posts?' . http_build_query([ 'fields' => 'id,message,created_time,permalink_url,full_picture', 'limit' => 6, 'access_token' => $access_token ]); $response = wp_remote_get($url, [ 'timeout' => 15 ]); if (is_wp_error($response)) { return '

No se pudo cargar el feed de Facebook.

'; } $body = wp_remote_retrieve_body($response); $data = json_decode($body, true); if (isset($data['error'])) { return '

Error de Facebook: ' . esc_html($data['error']['message']) . '

'; } if (!isset($data['data']) || empty($data['data'])) { return '

No hay publicaciones disponibles.

'; } $posts = $data['data']; set_transient($cache_key, $posts, 30 * MINUTE_IN_SECONDS); } ob_start(); ?>