{"id":55037,"date":"2024-02-15T03:23:14","date_gmt":"2024-02-14T18:23:14","guid":{"rendered":"https:\/\/kinsta.com\/jp\/?p=55037&#038;preview=true&#038;preview_id=55037"},"modified":"2024-02-26T16:12:37","modified_gmt":"2024-02-26T07:12:37","slug":"bulk-update-plugins-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/","title":{"rendered":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p>\u30d7\u30e9\u30b0\u30a4\u30f3\u306fWordPress\u30b5\u30a4\u30c8\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3084\u62e1\u5f35\u306b\u6b20\u304b\u305b\u306a\u3044\u5b58\u5728\u3002\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306a\u3057\u3067<a href=\"https:\/\/kinsta.com\/blog\/wordpress-contact-form-plugins\/\">\u304a\u554f\u3044\u5408\u308f\u305b\u30d5\u30a9\u30fc\u30e0<\/a>\u3084<a href=\"https:\/\/kinsta.com\/jp\/blog\/wordpress-ecommerce-plugins\/\">EC\u6a5f\u80fd<\/a>\u3001<a href=\"https:\/\/kinsta.com\/jp\/topics\/analytics\/\">\u5206\u6790\u30c4\u30fc\u30eb<\/a>\u306a\u3069\u3092\u5b9f\u88c5\u3067\u304d\u308b\u305f\u3081\u975e\u5e38\u306b\u4fbf\u5229\u3067\u3059\u3002<\/p>\n<p>WordPress\u304c\u5b9a\u671f\u7684\u306b\u66f4\u65b0\u3055\u308c\u308b\u3088\u3046\u306b\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3082\u307e\u305f\u65b0\u6a5f\u80fd\u306e\u5c0e\u5165\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d1\u30c3\u30c1\u3001\u4e92\u63db\u6027\u306e\u6539\u5584\u306a\u3069\u306e\u76ee\u7684\u3067\u7d99\u7d9a\u7684\u306b\u66f4\u65b0\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u70b9\u3092\u8003\u616e\u3057\u3001Kinsta\u306e\u5c02\u7528\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb\u300cMyKinsta\u300d\u3067\u306f\u3001<a href=\"https:\/\/kinsta.com\/jp\/changelog\/plugin-and-theme-management\/\">\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u30c6\u30fc\u30de\u3092\u7c21\u5358\u306b\u7ba1\u7406<\/a>\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3057\u304b\u3057\u3001\u591a\u6570\u306e\u30b5\u30a4\u30c8\u3092\u4fdd\u5b88\u7ba1\u7406\u3059\u308b\u4f01\u696d\u306b\u3068\u3063\u3066\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u306f\u5927\u5909\u306a\u4f5c\u696d\u3067\u3059\u3002\u305d\u3053\u3067\u4eca\u56de\u306f\u3001\u305d\u3093\u306a\u8ca0\u62c5\u3092\u8efd\u6e1b\u3059\u308b\u305f\u3081\u3001<a href=\"https:\/\/kinsta.com\/jp\/changelog\/kinsta-api\/\">Kinsta API<\/a>\u3092\u4f7f\u7528\u3057\u3066\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u540c\u6642\u306b\u7ba1\u7406\u3059\u308b\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>\u69cb\u7bc9\u3059\u308b\u3082\u306e<\/h2>\n<p>\u4eca\u56de\u306f\u3001Kinsta API\u3092\u4f7f\u7528\u3057\u3066\u9ad8\u5ea6\u306a\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u306b\u7126\u70b9\u3092\u5f53\u3066\u307e\u3059\u3002<\/p>\n<p>\u5177\u4f53\u7684\u306b\u306f\u3001MyKinsta\u306e\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\u3059\u308bReact\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001<strong>\u8907\u6570\u306e\u30b5\u30a4\u30c8\u306b\u307e\u305f\u304c\u3063\u3066\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0<\/strong>\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u305f\u3081\u3001\u65e5\u3005\u306e\u4f5c\u696d\u304c\u5927\u5e45\u306b\u6357\u308a\u307e\u3059\u3002<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/kinsta-plugin-manager.gif\" alt=\"\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u305f\u3081\u306bReact\u3068Kinsta API\u3067\u69cb\u7bc9\u3057\u305f\u30c4\u30fc\u30eb\u4f8b\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u305f\u3081\u306bReact\u3068Kinsta API\u3067\u69cb\u7bc9\u3057\u305f\u30c4\u30fc\u30eb\u4f8b<\/figcaption><\/figure>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Kinsta\u3067\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3092\u7ba1\u7406\u3057\u3066\u3044\u308b<a href=\"https:\/\/kinsta.com\/jp\/agency-directory\/\">\u4ee3\u884c\u696d\u8005<\/a>\u306e\u304a\u5ba2\u69d8\u306f\u3001\u3059\u3050\u306b\u3053\u306e\u30c4\u30fc\u30eb\u3092\u304a\u4f7f\u3044\u3044\u305f\u3060\u3051\u307e\u3059\uff08\u30ab\u30b9\u30bf\u30e0\u6a5f\u80fd\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081API\u3068\u306e\u76f8\u4e92\u4f5c\u7528\u3092\u7406\u89e3\u3057\u305f\u3044\u5834\u5408\u3092\u9664\u304f\uff09\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/kinsta\/Kinsta-Plugin-Manager\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub\u306e\u3053\u3061\u3089\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/a>\u3092\u4f7f\u3063\u3066<a href=\"https:\/\/kinsta.com\/jp\/topics\/git\/\">Git<\/a>\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u300c<strong>Use this template<\/strong>\u300d\uff1e\u300c<strong>Create a new repository<\/strong>\u300d\u3092\u9078\u629e\u3057\u3001\u30b9\u30bf\u30fc\u30bf\u30fc\u30b3\u30fc\u30c9\u3092GitHub\u30a2\u30ab\u30a6\u30f3\u30c8\u5185\u306e\u65b0\u898f\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/p>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8a2d\u5b9a\u3092\u7d42\u3048\u305f\u3089\u3001\u9759\u7684\u30b5\u30a4\u30c8\u30b5\u30fc\u30d0\u30fc\u306b\u7121\u6599\u3067\u30c7\u30d7\u30ed\u30a4\u3057\u3001<a href=\"https:\/\/kinsta.com\/blog\/what-is-an-environment-variable\/\">\u74b0\u5883\u5909\u6570<\/a>\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-bash\">REACT_APP_KINSTA_COMPANY_ID = 'YOUR_COMPANY_ID' \nREACT_APP_KINSTA_API_KEY = 'YOUR_API_KEY'<\/code><\/pre>\n<p>\u3053\u308c\u3067MyKinsta\u306e\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u3053\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u3044\u59cb\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/aside>\n\n<h2>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u524d\u63d0\u6761\u4ef6<\/h2>\n<p>\u3053\u308c\u304b\u3089\u3054\u7d39\u4ecb\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u3001\u4ee5\u4e0b\u306e\u6761\u4ef6\u3092\u524d\u63d0\u3068\u3057\u307e\u3059\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/kinsta.com\/jp\/blog\/what-is-html\/\">HTML<\/a>\u3001<a href=\"https:\/\/kinsta.com\/jp\/blog\/css-best-practices\/\">CSS<\/a>\u3001<a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a>\u306e\u57fa\u790e\u77e5\u8b58<\/li>\n<li><a href=\"https:\/\/kinsta.com\/jp\/blog\/what-is-react-js\/\">React<\/a>\u306e\u4f7f\u7528\u7d4c\u9a13\uff08\u3042\u308b\u7a0b\u5ea6\u7cbe\u901a\u3057\u3066\u3044\u308b\u3053\u3068\uff09<\/li>\n<li>Node.js\u3068npm\uff08<a href=\"https:\/\/kinsta.com\/jp\/blog\/what-is-npm\/\">Node Package Manager<\/a>\uff09\u307e\u305f\u306fyarn\u304c\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b<\/li>\n<\/ul>\n<h2>Kinsta API\u3092\u7406\u89e3\u3059\u308b<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/jp\/changelog\/kinsta-api\/\">Kinsta API<\/a>\u306f\u3001Kinsta\u306e<a href=\"https:\/\/kinsta.com\/jp\/wordpress-hosting\/\">WordPress\u5c02\u7528\u30de\u30cd\u30fc\u30b8\u30c9\u30af\u30e9\u30a6\u30c9\u30b5\u30fc\u30d0\u30fc<\/a>\u3068\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4ecb\u3057\u3066\u3084\u308a\u53d6\u308a\u3059\u308b\u3053\u3068\u3092\u53ef\u80fd\u306b\u3059\u308b\u5f37\u529b\u306a\u6a5f\u80fd\u3067\u3059\u3002<a href=\"https:\/\/kinsta.com\/jp\/blog\/wordpress-api\/\">\u30b5\u30a4\u30c8\u306e\u4f5c\u6210<\/a>\u3001<a href=\"https:\/\/kinsta.com\/jp\/blog\/schedule-tasks-kinsta-api\/\">\u30b5\u30a4\u30c8\u60c5\u5831\u306e\u53d6\u5f97<\/a>\u3001<a href=\"https:\/\/kinsta.com\/jp\/blog\/kinsta-api-key\/#how-to-use-kinsta-api-to-build-a-status-checker\">\u30b5\u30a4\u30c8\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u306e\u53d6\u5f97<\/a>\u3001<a href=\"https:\/\/kinsta.com\/jp\/blog\/wordpress-backups-api\/\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u53c2\u7167\u3068\u5fa9\u5143<\/a>\u306a\u3069\u3001Kinsta\u304c\u63d0\u4f9b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306b\u95a2\u9023\u3059\u308b\u69d8\u3005\u306a\u30bf\u30b9\u30af\u3092\u81ea\u52d5\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>Kinsta API\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001MyKinsta\u306b\u5c11\u306a\u304f\u3068\u30821\u3064\u306eWordPress\u30b5\u30a4\u30c8\u3001<a href=\"https:\/\/sevalla.com\/application-hosting\/\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/a>\u3001\u307e\u305f\u306f<a href=\"https:\/\/sevalla.com\/database-hosting\/\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/a>\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u5fc5\u8981\u3067\u3059\u3002\u307e\u305f\u3001API\u3092\u901a\u3057\u3066\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u8a8d\u8a3c\u3057\u3001\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306bAPI\u30ad\u30fc\u3092\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>API\u30ad\u30fc\u3092\u751f\u6210\u3059\u308b\u65b9\u6cd5\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ol start=\"1\">\n<li><a href=\"https:\/\/my.kinsta.com\/?lang=ja\">MyKinsta<\/a>\u306b\u79fb\u52d5<\/li>\n<li>\u300c<strong>API\u30ad\u30fc<\/strong>\u300d\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff08\uff08<strong>\u304a\u5ba2\u69d8\u306e\u540d\u524d<\/strong>\uff09\uff1e\u300c<strong>\u4f01\u696d\u306e\u8a2d\u5b9a<\/strong>\u300d\uff1e\u300c<strong>API\u30ad\u30fc<\/strong>\u300d\uff09<\/li>\n<li>\u300c<strong>API\u30ad\u30fc\u3092\u4f5c\u6210<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li>\n<li>\u6709\u52b9\u671f\u9650\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u300c\u30ab\u30b9\u30bf\u30e0\u300d\u304b\u3089\u65e5\u4ed8\u3068\u6642\u9593\u3092\u6307\u5b9a<\/li>\n<li>\u30ad\u30fc\u306b\u4e00\u610f\u306e\u540d\u524d\u3092\u4ed8\u3051\u308b<\/li>\n<li>\u300c<strong>\u751f\u6210<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li>\n<\/ol>\n<p>API\u30ad\u30fc\u3092\u4f5c\u6210\u3057\u305f\u3089\u3001\u5fc5\u305a\u30b3\u30d4\u30fc\u3057\u3066\u5b89\u5168\u306a\u5834\u6240\u306b\u4fdd\u7ba1\u3057\u3066\u304f\u3060\u3055\u3044\uff08<a href=\"https:\/\/kinsta.com\/jp\/blog\/password-managers\/\">\u30d1\u30b9\u30ef\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3\u30fc<\/a>\u306e\u4f7f\u7528\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\uff09\u3002\u8907\u6570\u306eAPI\u30ad\u30fc\u751f\u6210\u304c\u53ef\u80fd\u3067\u3001\u305d\u306e\u540d\u524d\u306f\u300c<strong>API\u30ad\u30fc<\/strong>\u300d\u30da\u30fc\u30b8\u306b\u4e00\u89a7\u3067\u8868\u793a\u3055\u308c\u307e\u3059\u3002API\u30ad\u30fc\u3092\u53d6\u308a\u6d88\u3059\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u53d6\u308a\u6d88\u3057\u305f\u3044API\u30ad\u30fc\u306e\u6a2a\u306b\u3042\u308b\u300c<strong>\u30a2\u30af\u30bb\u30b9\u53d6\u308a\u6d88\u3057<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>React\u958b\u767a\u74b0\u5883\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/h2>\n<p>React\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e<a href=\"https:\/\/kinsta.com\/jp\/blog\/javascript-libraries\/\">\u4e3b\u8981JavaScript\u30e9\u30a4\u30d6\u30e9\u30ea<\/a>\u3067\u3059\u3002\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u3055\u307e\u3056\u307e\u306a\u90e8\u5206\u3092\u8868\u3059\u5ba3\u8a00\u578b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u3001JavaScript\u3068HTML\u3092\u7d44\u307f\u5408\u308f\u305b\u305f<a href=\"https:\/\/kinsta.com\/jp\/blog\/what-is-jsx\/\">JSX\u69cb\u6587<\/a>\u3067\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u624b\u9806\u306b\u5f93\u3063\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<ol start=\"1\">\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u305f\u3044\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5\u3057\u3001<a href=\"https:\/\/reactjs.org\/docs\/create-a-new-react-app.html#create-react-app\" target=\"_blank\" rel=\"noopener noreferrer\">create-react-app<\/a>\u3092\u4f7f\u7528\u3057\u3066React\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>&lt;project-name&gt;<\/code>\u306f\u3001\u4efb\u610f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002\n<pre><code class=\"language-bash\">npx create-react-app &lt;project-name&gt;<\/code><\/pre>\n<\/li>\n<li>\u4f5c\u6210\u5f8c\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5\u3057\u3001\u958b\u767a\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u307e\u3059\u3002\n<pre><code class=\"language-bash\">cd &lt;project-name&gt;\nnpm run start<\/code><\/pre>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067React\u30a2\u30d7\u30ea\u304c\u300chttp:\/\/localhost:3000\u300d\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ol>\n<p><code>create-react-app<\/code>\u3092\u4f7f\u7528\u3057\u3066React\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3068\u3001\u30d5\u30a9\u30eb\u30c0\u69cb\u9020\u304c\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002\u91cd\u8981\u306a\u30d5\u30a9\u30eb\u30c0\u306f<strong>src<\/strong>\u3067\u3001\u3053\u3053\u3067\u958b\u767a\u3092\u884c\u3044\u307e\u3059\u3002\u30d5\u30a9\u30eb\u30c0\u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u4e3b\u306a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ul>\n<li><strong>App.js<\/strong>\uff1aReact\u30a2\u30d7\u30ea\u306e\u4ed6\u306e\u3059\u3079\u3066\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3092\u884c\u3046\u30e1\u30a4\u30f3\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3002\u3059\u3079\u3066\u306e\u30b3\u30fc\u30c9\u304c\u3053\u3053\u306b\u8ffd\u52a0\u3055\u308c\u308b\u3002<\/li>\n<li><strong>index.js<\/strong>\uff1a\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u3067\u3001\u6700\u521d\u306b\u8aad\u307f\u8fbc\u307e\u308c\u3001<strong>App.js<\/strong>\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b\u3002<\/li>\n<li><strong>index.css<\/strong>\uff1a\u30a2\u30d7\u30ea\u5168\u4f53\u306e\u30b9\u30bf\u30a4\u30eb\u3068\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u5b9a\u7fa9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u3002\u3059\u3079\u3066\u306e\u30b9\u30bf\u30a4\u30eb\u304c\u3053\u3053\u306b\u8ffd\u52a0\u3055\u308c\u308b\u3002<\/li>\n<\/ul>\n<h2>\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4f5c\u6210\u3068\u30b9\u30bf\u30a4\u30eb\u8a2d\u5b9a<\/h2>\n<p><strong>App.js<\/strong>\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3055\u308c\u305f\u57fa\u672c\u7684\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u3001\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u4ecb\u3055\u305a\u306b\u69cb\u7bc9\u3057\u3066\u30b9\u30bf\u30a4\u30ea\u30f3\u30b0\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u30e1\u30a4\u30f3UI\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306e<code>submit<\/code>\u30dc\u30bf\u30f3\u3068\u3001MyKinsta\u5185\u306e\u30b5\u30a4\u30c8\u5168\u4f53\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e<code>select<\/code>\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6301\u3064\u30d5\u30a9\u30fc\u30e0\u304c\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/plugin-manager-ui.png\" alt=\"\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u30b5\u30a4\u30c8\u3092\u8aad\u307f\u8fbc\u3080\u30d7\u30e9\u30b0\u30a4\u30f3\u7ba1\u7406\u30c4\u30fc\u30eb\u306eUI\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u30b5\u30a4\u30c8\u3092\u8aad\u307f\u8fbc\u3080\u30d7\u30e9\u30b0\u30a4\u30f3\u7ba1\u7406\u30c4\u30fc\u30eb\u306eUI<\/figcaption><\/figure>\n<p>\u8868\u793a\u30bb\u30af\u30b7\u30e7\u30f3\u306b\u306f\u3001\u30b5\u30a4\u30c8\u540d\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u304a\u3088\u3073\u30d0\u30fc\u30b8\u30e7\u30f3\u306a\u3069\u306e\u8a73\u7d30\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u5404\u30b5\u30a4\u30c8\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30dc\u30bf\u30f3\u3068\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u304c\u5fc5\u8981\u306b\u306a\u308b\u30b5\u30a4\u30c8\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u57fa\u672c\u3068\u306a\u308b\u30dc\u30bf\u30f3\u3082\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><strong>App.js<\/strong>\u30d5\u30a1\u30a4\u30eb\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">import KinstaLogo from '.\/images\/kinsta_logo.png';\n\nconst App = () =&gt; {\n    return (\n        &lt;div className=\"container\"&gt;\n            &lt;div className=\"title-section\"&gt;\n                &lt;img src={KinstaLogo} className=\"logo\" alt=\"\" \/&gt;\n                &lt;h2&gt;\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u7ba1\u7406\u30c4\u30fc\u30eb&lt;\/h2&gt;\n                &lt;p&gt;\n                    Kinsta API\u3092\u5229\u7528\u3057\u3066\u3001Kinsta\u3067\u30db\u30b9\u30c8\u3059\u308b\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3067\u7c21\u5358\u306b\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3067\u304d\u307e\u3059\u3002\n                    \u7c21\u5358\u306b\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n                &lt;\/p&gt;\n            &lt;\/div&gt;\n            &lt;div&gt; className=\"info-section\"&gt;\n                &lt;p&gt;\n                    \u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u3001\n                    \u3053\u308c\u3089\u306e\u30b5\u30a4\u30c8\u3059\u3079\u3066\u3067\u540c\u6642\u306b\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b\u304b\u3001\n                    \u500b\u5225\u306b\u66f4\u65b0\u3059\u308b\u304b\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002\n                &lt;\/p&gt;\n            &lt;\/div&gt;\n            &lt;div className=\"form-section\"&gt;\n                &lt;form&gt;\n                    &lt;div className=\"form-control\"&gt;\n                        &lt;label&gt; htmlFor=\"plugin-name\"&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u540d&lt;\/label&gt;\n                        &lt;select name=\"plugin-name\" id=\"plugin-name\"&gt;\n                            &lt;option&gt; value=\"\"&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u9078\u629e&lt;\/option&gt;\n                        &lt;\/select&gt;\n                    &lt;\/div&gt;\n                    &lt;button&gt; className=\"btn\"&gt;\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3059\u308b&lt;\/button&gt;\n                &lt;\/form&gt;\n            &lt;\/div&gt;\n            &lt;div className=\"display_container\"&gt;\n                &lt;div className=\"site-list\"&gt;\n                    &lt;div className=\"list-title\"&gt;\n                        &lt;h3&gt;WooCommerce\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8&lt;\/h3&gt;\n\n                        &lt;button&gt; className=\"sm-btn\"&gt;\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3092v.3.6\u306b\u66f4\u65b0\u3059\u308b&lt;\/button&gt;\n                    &lt;\/div&gt;\n                    &lt;ul&gt;\n                        &lt;li&gt;\n                            &lt;div className=\"info\"&gt;\n                                &lt;p&gt;\n                                    &lt;b&gt;\u30b5\u30a4\u30c8\u540d\uff1a&lt;\/b&gt; WooCommerce\n                                &lt;\/p&gt;\n                                &lt;p&gt;\n                                    &lt;b&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\uff1a&lt;\/b&gt; \u6709\u52b9\n                                &lt;\/p&gt;\n                                &lt;p&gt;\n                                    &lt;b&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u30d0\u30fc\u30b8\u30e7\u30f3\uff1a&lt;\/b&gt; 3.5.1\n                                &lt;\/p&gt;\n                            &lt;\/div&gt;\n                            &lt;button&gt; className=\"sm-btn\"&gt;v.5.6\u306b\u66f4\u65b0\u3059\u308b&lt;\/button&gt;\n                        &lt;\/li&gt;\n                    &lt;\/ul&gt;\n                &lt;\/div&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    );\n};\n\nexport default App;<\/code><\/pre>\n<p>\u30b9\u30bf\u30a4\u30eb\u3092\u7de8\u96c6\u3059\u308b\u306b\u306f\u3001<a href=\"https:\/\/github.com\/kinsta\/Kinsta-Plugin-Manager\/blob\/main\/src\/index.css\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub\u30ea\u30dd\u30b8\u30c8\u30ea\u306eCSS\u30d5\u30a1\u30a4\u30eb<\/a>\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001\u30b3\u30fc\u30c9\u3092<strong>index.css<\/strong>\u30d5\u30a1\u30a4\u30eb\u306b\u30b3\u30d4\u30fc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>Kinsta API\u3068\u5bfe\u8a71\u3059\u308b<\/h2>\n<p>Kinsta API\u306f\u3001\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u76f8\u4e92\u4f5c\u7528\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u69d8\u3005\u306a\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306e\u306b\u4e0d\u53ef\u6b20\u306a\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u7bc4\u56f2\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\/\u66f4\u65b0\u3059\u308b\u306b\u306f\u3001\u30b5\u30a4\u30c8\u306e\u74b0\u5883ID\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u74b0\u5883ID\u306e\u53d6\u5f97\u306f\u3001\u9023\u7d9a\u3057\u305f\u30d7\u30ed\u30bb\u30b9\u3067\u3042\u308a\u3001\u307e\u305a\u6700\u521d\u306b\u30b5\u30a4\u30c8\u306eID\u3092\u6c7a\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\u30b5\u30a4\u30c8ID\u3092\u53d6\u5f97\u3059\u308b\u306b\u306f\u3001Kinsta\u306e\u4f01\u696dID\u304c\u5fc5\u8981\u3067\u3059\u3002\u3053\u308c\u306fAPI\u30ad\u30fc\u540c\u69d8\u3001\u4ed6\u306e\u4eba\u3068\u306f\u5171\u6709\u3057\u3066\u306f\u3044\u3051\u306a\u3044\u6a5f\u5bc6\u60c5\u5831\u3067\u3001MyKinsta\u3067\u78ba\u8a8d\u53ef\u80fd\u3067\u3059\uff08\u300c<strong>\u4f01\u696d\u306e\u8a2d\u5b9a<\/strong>\u300d\uff1e\u300c<strong>\u8acb\u6c42\u5148\u60c5\u5831<\/strong>\u300d\uff09\u3002<\/p>\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30d5\u30a9\u30eb\u30c0\u306b<strong>.env<\/strong>\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u3001React\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u74b0\u5883\u5909\u6570\u3068\u3057\u3066\u5b89\u5168\u306b\u4fdd\u5b58\u53ef\u80fd\u3067\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u300cYOUR_COMPANY_ID\u300d\u3092\u5b9f\u969b\u306e\u4f01\u696dID\u306b\u7f6e\u304d\u63db\u3048\u3066\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-bash\">REACT_APP_KINSTA_COMPANY_ID = 'YOUR_COMPANY_ID' \nREACT_APP_KINSTA_API_KEY = 'YOUR_API_KEY'<\/code><\/pre>\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u3067\u3053\u308c\u3089\u306e\u74b0\u5883\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001<code>process.env.THE_VARIABLE<\/code>\u69cb\u6587\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001<code>REACT_APP_KINSTA_COMPANY_ID<\/code>\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001<code>process.env.REACT_APP_KINSTA_COMPANY_ID<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>GitHub\u306b\u30d7\u30c3\u30b7\u30e5\u3055\u308c\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3001<strong>.env<\/strong>\u30d5\u30a1\u30a4\u30eb\u3092<strong><a href=\"https:\/\/kinsta.com\/jp\/blog\/gitignore-not-working\/\">.gitignore<\/a><\/strong>\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u3001\u6a5f\u5bc6\u60c5\u5831\u3092\u5b89\u5168\u306b\u4fdd\u7ba1\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h3>Kinsta API\u3092\u4f7f\u7528\u3057\u3066\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3068\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n<p>MyKinsta\u306e\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\u3057\u3066\u3044\u308b\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b\u306b\u306f\u30013\u3064\u306eAPI\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<p>\u7c21\u5358\u306b\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3001\u307e\u305a\u306fKinsta API\u306eURL\u3092\u5909\u6570\u306b\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-js\">const KinstaAPIUrl = 'https:\/\/api.kinsta.com\/v2';<\/code><\/pre>\n<ol start=\"1\">\n<li><strong>\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30b5\u30a4\u30c8\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b<\/strong>\uff1a\u4f01\u696d\u306b\u95a2\u9023\u3059\u308b\u3059\u3079\u3066\u306eWordPress\u30b5\u30a4\u30c8\u306e\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3092\u884c\u3046\u306b\u306f\u3001\u4f01\u696dID\u3092\u4f7f\u7528\u3057\u3066\u30af\u30a8\u30ea\u3092\u69cb\u7bc9\u3057\u3001\u9069\u5207\u306a\u6a29\u9650\u3067GET\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3044\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u3092JSON\u5f62\u5f0f\u306b\u51e6\u7406\u3057\u3066\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u304b\u3089\u30b5\u30a4\u30c8\u306e\u8a73\u7d30\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\n<pre><code class=\"language-js\">const query = new URLSearchParams({\n    company: process.env.REACT_APP_KINSTA_COMPANY_ID,\n}).toString();\nconst response = await fetch(`${KinstaAPIUrl}\/sites?${query}`, {\n    method: 'GET',\n    headers: { Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}` },\n});\n\nconst data = await response.json();\nconst companySites = data.company.sites;<\/code><\/pre>\n<\/li>\n<li><strong>\u30b5\u30a4\u30c8\u74b0\u5883ID\u3092\u53d6\u5f97\u3059\u308b<\/strong>\uff1a1\u306e\u30b9\u30c6\u30c3\u30d7\u306fWordPress\u30b5\u30a4\u30c8\u306e\u914d\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002\u5404\u30b5\u30a4\u30c8\u306b\u95a2\u9023\u3059\u308b\u74b0\u5883\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u3001\u30eb\u30fc\u30d7\u3057\u3066\u5225\u306e GET\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3044\u307e\u3059\u3002\n<pre><code class=\"language-js\">const sitesEnvironmentData = companySites.map(async (site) =&gt; {\n    const siteId = site.id;\n    const resp = await fetch(`${KinstaAPIUrl}\/sites\/${siteId}\/environments`, {\n        method: 'GET',\n        headers: {\n            Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n        },\n    });\n    const data = await resp.json();\n    const environments = data.site.environments;\n    return {\n        id: siteId,\n        name: site.display_name,\n        environments: environments,\n    };\n});<\/code><\/pre>\n<\/li>\n<li><strong>WordPress\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b<\/strong>\uff1a\u30b5\u30a4\u30c8ID\u3001\u540d\u524d\u3001\u74b0\u5883\u3092\u53d6\u5f97\u3057\u305f\u3089\u3001\u6b21\u306b\u74b0\u5883ID\u3092\u4f7f\u3063\u3066\u5404\u30b5\u30a4\u30c8\u306e\u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\u524d\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u30d7\u30ed\u30df\u30b9\u3092\u89e3\u6c7a\u3057\u305f\u4e0a\u3067\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306eGET\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3044\u307e\u3059\u3002\n<pre><code class=\"language-js\">\/\/ Wait for all the promises to resolve\nconst sitesData = await Promise.all(sitesEnvironmentData);\n\n\/\/ Get all plugins for each environment\nconst sitesWithPlugin = sitesData.map(async (site) =&gt; {\n    const environmentId = site.environments[0].id;\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/plugins`,\n        {\n            method: 'GET',\n            headers: {\n                Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n            },\n        }\n    );\n    const data = await resp.json();\n    const plugins = data.environment.container_info;\n    return {\n        env_id: environmentId,\n        name: site.name,\n        plugins: plugins,\n    };\n});\n\nconst sitesWithPluginData = await Promise.all(sitesWithPlugin);\nreturn sitesWithPluginData;<\/code><\/pre>\n<\/li>\n<li><strong>\u30d7\u30ed\u30bb\u30b9\u306e\u7d71\u5408<\/strong>\uff1a\u30d7\u30ed\u30bb\u30b9\u3092\u5408\u7406\u5316\u3059\u308b\u305f\u3081\u3001\u3053\u308c\u3089\u306eAPI\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u518d\u5229\u7528\u53ef\u80fd\u306a\u5358\u4e00\u306e\u975e\u540c\u671f\u95a2\u6570<code>getSitesWithPluginData<\/code>\u306b\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306f\u3001\u4e0a\u8a18\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u5b9f\u884c\u3057\u3066\u3001\u74b0\u5883ID\u3001\u30b5\u30a4\u30c8\u540d\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u914d\u5217\u306a\u3069\u3001\u5404\u30b5\u30a4\u30c8\u306b\u95a2\u3059\u308b\u91cd\u8981\u306a\u60c5\u5831\u3092\u542b\u3080\u914d\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002\n<pre><code class=\"language-jsx\">const getSitesWithPluginData = async () =&gt; {\n    const query = new URLSearchParams({\n        company: process.env.REACT_APP_KINSTA_COMPANY_ID,\n    }).toString();\n    const resp = await fetch(`${KinstaAPIUrl}\/sites?${query}`, {\n        method: 'GET',\n        headers: {\n            Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n        },\n    });\n\n    const data = await resp.json();\n    const companySites = data.company.sites;\n\n    \/\/ \u5404\u30b5\u30a4\u30c8\u306e\u3059\u3079\u3066\u306e\u74b0\u5883\u3092\u53d6\u5f97\n    const sitesEnvironmentData = companySites.map(async (site) =&gt; {\n        const siteId = site.id;\n        const resp = await fetch(`${KinstaAPIUrl}\/sites\/${siteId}\/environments`, {\n            method: 'GET',\n            headers: {\n                Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n            },\n        });\n        const data = await resp.json();\n        const environments = data.site.environments;\n        return {\n            id: siteId,\n            name: site.display_name,\n            environments: environments,\n        };\n    });\n\n    \/\/ \u3059\u3079\u3066\u306e\u30d7\u30ed\u30df\u30b9\u304c\u89e3\u6c7a\u3059\u308b\u306e\u3092\u5f85\u3064\n    const sitesData = await Promise.all(sitesEnvironmentData);\n\n    \/\/ \u5404\u74b0\u5883\u306e\u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\n    const sitesWithPlugin = sitesData.map(async (site) =&gt; {\n        const environmentId = site.environments[0].id;\n        const resp = await fetch(\n            `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/plugins`,\n            {\n                method: 'GET',\n                headers: {\n                    Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n                },\n            }\n        );\n        const data = await resp.json();\n        const plugins = data.environment.container_info;\n        return {\n            env_id: environmentId,\n            name: site.name,\n            plugins: plugins,\n        };\n    });\n\n    \/\/ \u3059\u3079\u3066\u306e\u30d7\u30ed\u30df\u30b9\u304c\u89e3\u6c7a\u3059\u308b\u306e\u3092\u5f85\u3064\n    const sitesWithPluginData = await Promise.all(sitesWithPlugin);\n    return sitesWithPluginData;\n};<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304b\u3089\u56fa\u6709\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3001<code>select<\/code>\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u30e1\u30cb\u30e5\u30fc\u306b\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u8868\u793a\u3057\u305f\u3044\u3068\u3057\u307e\u3059\u3002\u3053\u306e\u5834\u5408\u3001<code>getSitesWithPluginData<\/code>\u95a2\u6570\u304c\u3001\u5404\u30b5\u30a4\u30c8\u306e\u74b0\u5883ID\u3001\u540d\u524d\u3001\u304a\u3088\u3073\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\u3053\u306e\u30c7\u30fc\u30bf\u304c\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u62bd\u51fa\u3059\u308b\u305f\u3081\u306e\u57fa\u76e4\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><code>getSitesWithPluginData<\/code>\u3092\u547c\u3073\u51fa\u3057\u3001\u305d\u306e\u51fa\u529b\u3092\u51e6\u7406\u3057\u3066\u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b<code>fetchAllSitesPlugins<\/code>\u95a2\u6570\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-js\">const fetchAllSitesPlugins = async () =&gt; {\n    const sitesWithPluginData = await getSitesWithPluginData();\n\n    \/\/ \u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\n    const allPlugins = sitesWithPluginData.map((site) =&gt; {\n        const { plugins } = site;\n        return plugins.wp_plugins.data;\n    });\n\n   \/\/ \u2026\n};<\/code><\/pre>\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u306f\u5404\u30b5\u30a4\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u3057\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u4e00\u89a7\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u5404\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u4e00\u5ea6\u3060\u3051\u30ea\u30b9\u30c8\u5316\u3055\u308c\u308b\u3088\u3046\u306b\u3001\u4e00\u610f\u306e\u5024\u3092\u7a42\u4fdd\u5b58\u3059\u308bJavaScript\u306e<code>Set<\/code>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-js\">\/\/ \u4e00\u610f\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\n    const uniquePlugins = [\n        ...new Set(allPlugins.flat().map((plugin) =&gt; plugin.name)),\n    ];<\/code><\/pre>\n<p><code>.flat()<\/code>\u306f\u914d\u5217\u69cb\u9020\u3092\u6271\u3044\u3084\u3059\u3044\u5f62\u306b\u5909\u63db\uff08\u30d5\u30e9\u30c3\u30c8\u5316\uff09\u3057\u3001<code>.map()<\/code>\u306f\u30eb\u30fc\u30d7\u3057\u3066\u30d7\u30e9\u30b0\u30a4\u30f3\u540d\u3060\u3051\u3092\u62bd\u51fa\u3057\u307e\u3059\u3002<code>Set<\/code>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u91cd\u8907\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u5f79\u5272\u3092\u62c5\u3044\u307e\u3059\u3002<\/p>\n<p>React\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3053\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u8868\u793a\u3059\u308b\u306b\u306f\u3001<code>useState()<\/code>\u3068<code>useEffect()<\/code>\u30d5\u30c3\u30af\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">import { useState, useEffect } from 'react';\n\nconst App = () =&gt; {\n    const [pluginName, setPluginName] = useState('');\n    const [plugins, setPlugins] = useState([]);\n\n    \/\/\u30d7\u30e9\u30b0\u30a4\u30f3\u30c7\u30fc\u30bf\u3092\u6301\u3064\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\n    const getSitesWithPluginData = async () =&gt; {\n        \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5b9f\u884c\n    };\n\n    useEffect(() =&gt; {\n        const fetchAllSitesPlugins = async () =&gt; {\n            const sitesWithPluginData = await getSitesWithPluginData();\n            \/\/ \u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\n            const allPlugins = sitesWithPluginData.map((site) =&gt; {\n                const { plugins } = site;\n                return plugins.wp_plugins.data;\n            });\n            \/\/ \u4e00\u610f\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\n            const uniquePlugins = [\n                ...new Set(allPlugins.flat().map((plugin) =&gt; plugin.name)),\n            ];\n            setPlugins(uniquePlugins);\n        };\n\n        fetchAllSitesPlugins();\n    }, []);\n\n     \/\/JSX\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u30b3\u30fc\u30c9\u304c\u4ee5\u4e0b\u306b\u7d9a\u304f\n    \/\/...\n};<\/code><\/pre>\n<p><code>useEffect()<\/code>\u30d5\u30c3\u30af\u306f\u3001\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u30de\u30a6\u30f3\u30c8\u3055\u308c\u305f\u3068\u304d\u306b\u30c7\u30fc\u30bf\u304c\u53d6\u5f97\u3055\u308c\u3001\u30bb\u30c3\u30c8\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<code>useState()<\/code>\u30d5\u30c3\u30af\u306f\u3001\u56fa\u6709\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30ea\u30b9\u30c8\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u3001\u3053\u308c\u3089\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092<code>select<\/code>\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u8868\u793a\u3057\u307e\u3059\u3002\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u307e\u3060\u8aad\u307f\u8fbc\u307f\u4e2d\u306e\u5834\u5408\u306f\u3001\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">&lt;select&gt;\n    name=\"plugin-name\"\n    id=\"plugin-name\"\n    value={pluginName}\n    onChange={(e) =&gt; setPluginName(e.target.value)}\n&gt;\n    {plugins.length &gt; 0 ? (\n        &lt;&gt;\n            &lt;option value=\"\"&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u9078\u629e\u3059\u308b&lt;\/option&gt;\n            {plugins.map((plugin) =&gt; (\n                &lt;option key={plugin} value={plugin.toLowerCase()}&gt;\n                    {plugin}\n                &lt;\/option&gt;\n            ))}\n        &lt;\/&gt;\n    ) : (\n        &lt;option&gt; value=\"\"&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059&lt;\/option&gt;\n    )}\n&lt;\/select&gt;<\/code><\/pre>\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ul>\n<li><code>select<\/code>\u8981\u7d20\u2500\u9078\u629e\u3055\u308c\u305f\u5024\u3092\u683c\u7d0d\u3059\u308b\u30b9\u30c6\u30fc\u30c8\u5909\u6570<code>pluginName<\/code>\u306b\u30ea\u30f3\u30af<\/li>\n<li><code>onChange<\/code>\u30cf\u30f3\u30c9\u30e9\u2500\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u9078\u629e\u3055\u308c\u308b\u305f\u3073\u306b\u3053\u306e\u72b6\u614b\u3092\u66f4\u65b0<\/li>\n<li><code>plugins.map()<\/code>\u2500\u5404\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u8981\u7d20\u3092\u52d5\u7684\u306b\u751f\u6210<\/li>\n<\/ul>\n<p>\u4ee5\u4e0a\u306e\u624b\u9806\u306b\u5f93\u3046\u3053\u3068\u3067\u3001\u64cd\u4f5c\u3057\u3084\u3059\u3044\u30b7\u30f3\u30d7\u30eb\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u3001\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304b\u3089\u53d6\u5f97\u3057\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u8868\u793a\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/select-field-plugin-manager.png\" alt=\"\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304b\u3089\u4e00\u610f\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u8868\u793a\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u9078\u629e\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304b\u3089\u4e00\u610f\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u89a7\u3092\u8868\u793a\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u9078\u629e<\/figcaption><\/figure>\n<h3>\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u6301\u3064\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n<p>\u3053\u3053\u307e\u3067\u3067\u3001MyKinsta\u306e\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3059\u304c\u3001\u7d9a\u3044\u3066\u306f\u3001\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u6301\u3064\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3092\u30eb\u30fc\u30d7\u3057\u3001\u305d\u308c\u3089\u3092\u72b6\u614b\u306b\u4fdd\u5b58\u3057\u3001\u8868\u793a\u3059\u308b\u65b9\u6cd5\u3092\u5b9f\u88c5\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u3092\u884c\u3046\u306b\u306f\u30012\u3064\u306e\u72b6\u614b\u3092\u4f5c\u6210\u3057\u307e\u3059\u30021\u3064\u306f\u30b5\u30a4\u30c8\u3092\u4fdd\u5b58\u3059\u308b\u72b6\u614b\uff08<code>sites<\/code>\uff09\u3001\u3082\u30461\u3064\u306f\u8aad\u307f\u8fbc\u307f\u72b6\u614b\u3092\u793a\u3059\u72b6\u614b\uff08<code>isLoading<\/code>\uff09\u3067\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">const [sites, setSites] = useState([]);\nconst [isLoading, setIsLoading] = useState(false);<\/code><\/pre>\n<p>\u305d\u308c\u304b\u3089<code>fetchSites<\/code>\u95a2\u6570\u3092\u4f5c\u6210\u3057\u3001\u5404\u30b5\u30a4\u30c8\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3057\u3066\u3001\u9078\u629e\u3057\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u691c\u8a3c\u3057\u307e\u3059\u3002\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u305d\u306e\u30b5\u30a4\u30c8\u306e\u95a2\u9023\u3059\u308b\u8a73\u7d30\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a<code>isLoading<\/code>\u3092<code>true<\/code>\u306b\u8a2d\u5b9a\u3057\u3066\u3001<code>sites<\/code>\u914d\u5217\u3092\u30af\u30ea\u30a2\u3057\u307e\u3059\u3002\u305d\u306e\u5f8c\u3001<code>getSitesWithPluginData<\/code>\u3092\u547c\u3073\u51fa\u3057\u3001\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">const fetchSites = async () =&gt; {\n    setIsLoading(true);\n    setSites([]);\n    const sitesWithPluginData = await getSitesWithPluginData();\n\n    \/\/ \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u6301\u3063\u3066\u3044\u306a\u3044\u30b5\u30a4\u30c8\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n    const sitesWithPluginDataFiltered = sitesWithPluginData\n        .filter((site) =&gt; {\n            const sitePlugins = site.plugins.wp_plugins.data;\n            return sitePlugins.some((plugin) =&gt; {\n                return plugin.name === pluginName;\n            });\n        })\n        .map((site) =&gt; {\n            const { env_id, name } = site;\n            const { version, status, update, update_version } =\n                site.plugins.wp_plugins.data.find(\n                    (plugin) =&gt; plugin.name === pluginName\n                );\n            return {\n                env_id,\n                name,\n                version,\n                status,\n                updateAvailable: update,\n                updateVersion: update_version,\n            };\n        });\n    setSites(sitesWithPluginDataFiltered);\n    setIsLoading(false);\n};<\/code><\/pre>\n<p><code>sitesWithPluginDataFiltered<\/code>\u95a2\u6570\u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ul>\n<li><code>.filter()<\/code>\u00a0\u304c\u9078\u629e\u3057\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u542b\u3080\u30b5\u30a4\u30c8\u3092\u5206\u96e2<\/li>\n<li>\u6b21\u306b<code>.map()<\/code>\u304c\u5404\u30b5\u30a4\u30c8\u304b\u3089\u5fc5\u8981\u306a\u8a73\u7d30\u3092\u62bd\u51fa<\/li>\n<li>\u6700\u5f8c\u306b<code>setSites<\/code>\u3068<code>setIsLoading<\/code>\u30d5\u30c3\u30af\u304c\u3001\u65b0\u305f\u306a\u30c7\u30fc\u30bf\u3068\u8aad\u307f\u8fbc\u307f\u72b6\u614b\u3067\u72b6\u614b\u3092\u66f4\u65b0<\/li>\n<\/ul>\n<p>\u6b21\u306b\u3001<code>handleSubmit<\/code>\u95a2\u6570\u3092\u4f5c\u6210\u3057\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u9078\u629e\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3057\u305f\u969b\u306b\u3053\u306e\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u3088\u3046\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u300c<strong>\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3059\u308b<\/strong>\u300d\uff08Fetch sites with this plugin\uff09\u30dc\u30bf\u30f3\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306b\u3088\u3063\u3066\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d5\u30a9\u30fc\u30e0\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9632\u304e\u3001<code>fetchSites<\/code>\u3092\u547c\u3073\u51fa\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">const handleSubmit = (e) =&gt; {\n    e.preventDefault();\n    fetchSites();\n};<\/code><\/pre>\n<p>\u3053\u308c\u3067\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u9078\u629e\u3057\u3066\u9001\u4fe1\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u305d\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\u3092\u3059\u3079\u3066\u53d6\u5f97\u3057\u3001<code>sites<\/code>\u306e\u72b6\u614b\u306b\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/p>\n<h4>\u9078\u629e\u3057\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\u3092\u8868\u793a\u3059\u308b<\/h4>\n<p><code>sites<\/code>\u306b\u95a2\u9023\u30b5\u30a4\u30c8\u3092\u4fdd\u5b58\u3059\u308b\u3053\u3068\u306b\u6210\u529f\u3057\u305f\u3089\u3001\u6b21\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u3053\u306e\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3055\u305b\u307e\u3059\u3002\u5404\u30b5\u30a4\u30c8\u3092\u4e00\u89a7\u9805\u76ee\u3068\u3057\u3066\u8868\u793a\u3057\u3001\u4e3b\u8981\u306a\u8a73\u7d30\u3068\u30d7\u30e9\u30b0\u30a4\u30f3\u66f4\u65b0\u306e\u305f\u3081\u306e\u30dc\u30bf\u30f3\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">&lt;ul&gt;\n    {sites.map((site) =&gt; (\n        &lt;li key={site.env_id}&gt;\n            &lt;div className=\"info\"&gt;\n                &lt;p&gt;\n                    &lt;b&gt;\u30b5\u30a4\u30c8\u540d\uff1a&lt;\/b&gt; {site.name}\n                &lt;\/p&gt;\n                &lt;p&gt;\n                    &lt;b&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\uff1a&lt;\/b&gt; {site.status}\n                &lt;\/p&gt;\n                &lt;p&gt;\n                    &lt;b&gt;\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\uff1a&lt;\/b&gt; {site.version}\n                &lt;\/p&gt;\n            &lt;\/div&gt;\n            &lt;button&gt;\n                className={`sm-btn ${\n                    site.updateAvailable !== 'available' ? 'disabled-btn' : ''\n                }`}\n                disabled={site.updateAvailable !== 'available'}\n            &gt;\n                {site.updateAvailable === 'available'\n                    ? `Update to v.${site.updateVersion}`\n                    : '\u6700\u65b0'}\n            &lt;\/button&gt;\n        &lt;\/li&gt;\n    ))}\n&lt;\/ul&gt;<\/code><\/pre>\n<p>\u4e0a\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001<code>.map()<\/code>\u3092\u4f7f\u7528\u3057\u3066<code>sites<\/code> \u914d\u5217\u3092\u7e70\u308a\u8fd4\u3057\u3001\u30b5\u30a4\u30c8\u4e00\u89a7\uff08<code>&lt;ul&gt;<\/code>\uff09\u3092\u4f5c\u6210\u3057\u307e\u3059\uff08<code>&lt;li&gt;<\/code>\u8981\u7d20\uff09\u3002\u4e00\u89a7\u306e\u5404\u9805\u76ee\u306b\u306f\u3001\u30b5\u30a4\u30c8\u306e\u8a73\u7d30\u3068\u30d7\u30e9\u30b0\u30a4\u30f3\u66f4\u65b0\u7528\u306e\u30dc\u30bf\u30f3\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<p>UI\u306e\u30dc\u30bf\u30f3\u306f\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u30b9\u30bf\u30a4\u30eb\u3068\u6a5f\u80fd\u3092\u5909\u66f4\u3057\u307e\u3059\u3002\u66f4\u65b0\u304c\u3042\u308b\u5834\u5408\u306b\u306f\u6709\u52b9\u306b\u306a\u308a\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u300c\u6700\u65b0\u300d\uff08Up to date\uff09\u3068\u8868\u793a\u3057\u307e\u3059\u3002\u6761\u4ef6\u4ed8\u304d<a href=\"https:\/\/kinsta.com\/jp\/blog\/css-best-practices\/\">CSS<\/a>\u3068disabled\u5c5e\u6027\u306b\u3088\u3063\u3066\u5236\u5fa1\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u3001\u30b5\u30a4\u30c8\u306e\u53d6\u5f97\u6642\u306b<code>isLoading<\/code>\u3092\u4f7f\u7528\u3057\u3066\u6761\u4ef6\u4ed8\u304d\u3067\u8aad\u307f\u8fbc\u307f\u4e2d\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre><code class=\"language-jsx\">{isLoading && (\n    &lt;div className=\"loading\"&gt;\n        &lt;p&gt;\u8aad\u307f\u8fbc\u307f\u4e2d\u3067\u3059\u2026&lt;\/p&gt;\n    &lt;\/div&gt;\n)}<\/code><\/pre>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/list-sites-plugin.png\" alt=\"\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u30b5\u30a4\u30c8\u4e00\u89a7\u3068\u3001\u500b\u5225\u307e\u305f\u306f\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30dc\u30bf\u30f3\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u30b5\u30a4\u30c8\u4e00\u89a7\u3068\u3001\u500b\u5225\u307e\u305f\u306f\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30dc\u30bf\u30f3<\/figcaption><\/figure>\n<h3>Kinsta API\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b<\/h3>\n<p>\u4ee5\u4e0a\u3067\u91cd\u8981\u306a\u8a73\u7d30\u60c5\u5831\u3092\u6301\u3064\u30b5\u30a4\u30c8\u3092\u53d6\u5f97\u3057\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u7ba1\u7406\u3092\u884c\u3046\u6e96\u5099\u304c\u6574\u3044\u307e\u3057\u305f\u3002\u6700\u7d42\u7684\u306a\u76ee\u6a19\u306f\u3001Kinsta API\u3092\u4f7f\u3063\u3066\u8907\u6570\u306e\u30b5\u30a4\u30c8\u306b\u307e\u305f\u304c\u3063\u3066\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u7c21\u5358\u306b\u66f4\u65b0\u3059\u308b\u3053\u3068\u3002\u6700\u5f8c\u306b\u66f4\u65b0\u306e\u5b9f\u884c\u3068\u9032\u6357\u72b6\u6cc1\u306e\u8ffd\u8de1\u3092\u5b9f\u88c5\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h4>\u30d7\u30e9\u30b0\u30a4\u30f3\u66f4\u65b0\u306e\u30c8\u30ea\u30ac\u30fc<\/h4>\n<p>\u4e00\u89a7\u8868\u793a\u3055\u308c\u308b\u30b5\u30a4\u30c8\u306b\u306f\u305d\u308c\u305e\u308c\u30dc\u30bf\u30f3\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u66f4\u65b0\u53ef\u80fd\u304b\u3069\u3046\u304b\u3092\u53cd\u6620\u3059\u308b\u4ed5\u69d8\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001<code>updatePlugin<\/code>\u304c\u30c8\u30ea\u30ac\u30fc\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">&lt;button&gt;\n    className={`sm-btn ${\n        site.updateAvailable !== 'available' ? 'disabled-btn' : ''\n    }`}\n    disabled={site.updateAvailable !== 'available'}\n    onClick={() =&gt;\n        updatePlugin(site.env_id, site.updateVersion)\n    }\n&gt;\n    {site.updateAvailable === 'available'\n        ? `Update to v.${site.updateVersion}`\n        : 'Up to date'}\n&lt;\/button&gt;<\/code><\/pre>\n<p><code>onClick<\/code>\u30cf\u30f3\u30c9\u30e9\u306f\u3001\u30b5\u30a4\u30c8\u306e\u74b0\u5883 ID\u3068\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\uff08<code>updateVersion<\/code>\uff09\u3067<code>updatePlugin<\/code>\u3092\u547c\u3073\u51fa\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306f\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306bKinsta API\u306bPUT\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">const updatePlugin = async (envId, pluginVersion) =&gt; {\n    const resp = await fetch(`${KinstaAPIUrl}\/sites\/environments\/${envId}\/plugins`, {\n        method: 'PUT',\n        headers: {\n            'Content-Type': 'application\/json',\n            Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n        },\n        body: JSON.stringify({\n            name: pluginName,\n            update_version: pluginVersion,\n        }),\n    });\n\n    const data = await resp.json();\n    \/\/ \u3055\u3089\u306b\u51e6\u7406\n};<\/code><\/pre>\n<h4>\u66f4\u65b0\u306e\u9032\u884c\u72b6\u6cc1\u3092\u8ffd\u8de1\u3059\u308b<\/h4>\n<p>\u66f4\u65b0\u304c\u958b\u59cb\u3055\u308c\u305f\u3089\u3001\u305d\u306e\u9032\u884c\u72b6\u6cc1\u3092\u76e3\u8996\u3059\u308b\u3053\u3068\u3082\u91cd\u8981\u3067\u3059\u3002\u66f4\u65b0\u304c\u59cb\u307e\u308b\u3068\u3001Kinsta API\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">{\n  \"operation_id\": \"wp-plugin:update-54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n  \"message\": \"WordPress\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u4e2d\",\n  \"status\": 202\n}<\/code><\/pre>\n<p><code>operation_id<\/code>\u304c\u3001\u64cd\u4f5c\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u4ecb\u3057\u3066\u66f4\u65b0\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u8ffd\u8de1\u3057\u307e\u3059\u3002<code>operation_id<\/code>\u3092\u56e0\u6570\u3068\u3057\u3066\u3001\u3053\u306eAPI\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3046\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">\/\/ \u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u78ba\u8a8d\nconst checkPluginUpdateStatus = async (operationId) =&gt; {\n    const resp = await fetch(`${KinstaAPIUrl}\/operations\/${operationId}`, {\n        method: 'GET',\n        headers: {\n            Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n        },\n    });\n    const data = await resp.json();\n    return data.status;\n};<\/code><\/pre>\n<p><code>updatePlugin<\/code>\u5185\u3067<code>if<\/code>\u6587\u3092\u4f7f\u7528\u3057\u3066 \u3001\u6700\u521d\u306e\u66f4\u65b0\u30ea\u30af\u30a8\u30b9\u30c8\uff08<code>status<\/code>\uff09\u304c<code>202<\/code>\u3067\u3042\u308b\u304b\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002<code>202<\/code>\u3067\u3042\u308c\u30705\u79d2\uff085,000\u30df\u30ea\u79d2\uff09\u3054\u3068\u306b<code>checkPluginUpdateStatus<\/code>\u3092\u547c\u3073\u51fa\u3059\u9593\u9694\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p>\u5b9a\u671f\u7684\u306b\u66f4\u65b0\u306e\u9032\u884c\u72b6\u6cc1\u3092\u78ba\u8a8d\u3057\u3001\u66f4\u65b0\u304c\u5b8c\u4e86\u3059\u308b\u3068<code>fetchSites<\/code>\u3092\u547c\u3073\u51fa\u3057\u3066\u30b5\u30a4\u30c8\u4e00\u89a7\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002\u9014\u4e2d\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306f\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u304c\u8a18\u9332\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">if (data.status === 202) {\n    const interval = setInterval(() =&gt; {\n        checkPluginUpdateStatus(data.operation_id)\n            .then((status) =&gt; {\n                console.log(status);\n                if (status === 200) {\n                    clearInterval(interval);\n                    fetchSites();\n                }\n            })\n            .catch((error) =&gt; {\n                \/\/ \u30d7\u30ed\u30df\u30b9\u306e\u89e3\u6c7a\u4e2d\u306b\u767a\u751f\u3057\u305f\u30a8\u30e9\u30fc\u3092\u51e6\u7406\n                console.error('Error:', error);\n            });\n    }, 5000);\n}<\/code><\/pre>\n<h4>\u64cd\u4f5c\u306e\u9032\u884c\u72b6\u6cc1\u3092\u8868\u793a\u3059\u308b<\/h4>\n<p>\u3053\u306e\u6642\u70b9\u3067\u306f\u3059\u3079\u3066\u6b63\u5e38\u306b\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u64cd\u4f5c\u306e\u9032\u6357\u304c\u78ba\u8a8d\u3067\u304d\u308b\u3068\u306a\u304a\u4fbf\u5229\u3067\u3059\u3002<code>showStatusBar<\/code>\u3092\u4f7f\u7528\u3057\u3066\u3001\u64cd\u4f5c\u304c\u9032\u884c\u4e2d\u306b\u8868\u793a\u3055\u308c\u3001\u64cd\u4f5c\u304c\u5b8c\u4e86\u3059\u308b\u3068\u6d88\u3048\u308b\u30b9\u30c6\u30fc\u30bf\u30b9\u30d0\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">const [showStatusBar, setShowStatusBar] = useState(false);<\/code><\/pre>\n<p><code>showStatusBar<\/code>\u304c<code>true<\/code>\u306e\u5834\u5408\u3001\u753b\u9762\u4e0a\u90e8\u306b\u66f4\u65b0\u4e2d\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3059\u30b9\u30c6\u30fc\u30bf\u30b9\u30d0\u30fc\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30d0\u30fc\u306f\u753b\u9762\u4e0a\u90e8\u306b\u56fa\u5b9a\u3055\u308c\u308b\u4ed5\u69d8\u3067\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">{showStatusBar && (\n    &lt;div className=\"status-bar\"&gt;\n        &lt;p&gt;WordPress\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u4e2d\u2026&lt;\/p&gt;\n    &lt;\/div&gt;\n)}<\/code><\/pre>\n<p>\u3053\u308c\u3067\u3001<code>updatePlugin<\/code>\u95a2\u6570\u306e<code>if<\/code>\u6587\u3092\u8abf\u6574\u3057\u3001\u66f4\u65b0\u72b6\u6cc1\u306b\u57fa\u3065\u3044\u3066<code>showStatusBar<\/code>\u3092<code>true<\/code>\u307e\u305f\u306f<code>false<\/code>\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">if (data.status === 202) {\n    setShowStatusBar(true);\n    const interval = setInterval(() =&gt; {\n        checkPluginUpdateStatus(data.operation_id)\n            .then((status) =&gt; {\n                console.log(status);\n                if (status === 200) {\n                    setShowStatusBar(false);\n                    clearInterval(interval);\n                    fetchSites();\n                }\n            })\n            .catch((error) =&gt; {\n                \/\/ \u30d7\u30ed\u30df\u30b9\u306e\u89e3\u6c7a\u4e2d\u306b\u767a\u751f\u3057\u305f\u30a8\u30e9\u30fc\u3092\u51e6\u7406\n                console.error('Error:', error);\n            });\n    }, 5000);\n}<\/code><\/pre>\n<p>\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306b\u3088\u308a\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u78ba\u5b9f\u306b\u77e5\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u30c4\u30fc\u30eb\u5168\u4f53\u306e\u4f7f\u3044\u52dd\u624b\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n<h3>Kinsta API\u3092\u4f7f\u7528\u3057\u3066\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b<\/h3>\n<p>\u3053\u306e\u30c4\u30fc\u30eb\u306e\u4e3b\u306a\u7279\u5fb4\u306f\u3001MyKinsta\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u3067\u66f4\u65b0\u3059\u308b\u70b9\u306b\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u30011\u3064\u306e\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306b\u5b9f\u88c5\u3055\u308c\u305f\u6a5f\u80fd\u3068\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u66f4\u65b0\u304c\u5fc5\u8981\u306a\u7279\u5b9a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u308b\u30b5\u30a4\u30c8\u3092\u542b\u3080<code>sites<\/code>\u306e\u72b6\u614b\u3092\u30eb\u30fc\u30d7\u3057\u307e\u3059\u3002\u66f4\u65b0\u304c\u5fc5\u8981\u306a\u30b5\u30a4\u30c8\u3054\u3068\u306b\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306eAPI\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u884c\u308f\u308c\u3001\u305d\u306e\u5f8c\u3001\u64cd\u4f5c\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u8ffd\u8de1\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">\/\/ \u3059\u3079\u3066\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u66f4\u65b0\nconst updateAllPlugins = async () =&gt; {\n    sites.map(async (site) =&gt; {\n        if (site.updateAvailable === 'available') {\n            const environmentId = site.env_id;\n            const resp = await fetch(\n                `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/plugins`,\n                {\n                    method: 'PUT',\n                    headers: {\n                        'Content-Type': 'application\/json',\n                        Authorization: `Bearer ${process.env.REACT_APP_KINSTA_API_KEY}`,\n                    },\n                    body: JSON.stringify({\n                        name: pluginName,\n                        update_version: site.updateVersion,\n                    }),\n                }\n            );\n            const data = await resp.json();\n            if (data.status === 202) {\n                setShowStatusBar(true);\n                const interval = setInterval(() =&gt; {\n                    checkPluginUpdateStatus(data.operation_id)\n                        .then((status) =&gt; {\n                            console.log(status);\n                            if (status === 200) {\n                                setShowStatusBar(false);\n                                clearInterval(interval);\n                                fetchSites();\n                            }\n                        })\n                        .catch((error) =&gt; {\n                            \/\/ \u30d7\u30ed\u30df\u30b9\u306e\u89e3\u6c7a\u4e2d\u306b\u767a\u751f\u3057\u305f\u30a8\u30e9\u30fc\u3092\u51e6\u7406\n                            console.error('Error:', error);\n                        });\n                }, 5000);\n            }\n        }\n    });\n};<\/code><\/pre>\n<p>\u3053\u306e\u6a5f\u80fd\u306f\u3001\u300c<strong>\u3059\u3079\u3066\u3092\u66f4\u65b0<\/strong>\u300d\uff08Update All\uff09\u30dc\u30bf\u30f3\u306b\u63a5\u7d9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u64cd\u4f5c\u6027\u3092\u8003\u616e\u3057\u3001\u30dc\u30bf\u30f3\u306b\u306f\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u66f4\u65b0\u3055\u308c\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">&lt;button&gt; className=\"sm-btn\" onClick={updateAllPlugins}&gt;\n    \u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3092v.\u306b\u66f4\u65b0\u3059\u308b\n    {\n        sites.find((site) =&gt; site.updateVersion !== null)\n            ?.updateVersion\n    }\n&lt;\/button&gt;<\/code><\/pre>\n<p>\u3055\u3089\u306b\u3001\u3053\u306e\u30dc\u30bf\u30f3\u3092\u6761\u4ef6\u4ed8\u304d\u3067\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3057\u3001\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u66f4\u65b0\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u306e\u307f\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304c\u6700\u65b0\u306e\u72b6\u614b\u3067\u3042\u308b\u5834\u5408\u306f\u3001\u305d\u306e\u65e8\u3092\u4f1d\u3048\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre><code class=\"language-jsx\">&lt;div className=\"list-title\"&gt;\n    &lt;h3&gt;Sites with {pluginName} plugin&lt;\/h3&gt;\n    {sites.filter((site) =&gt; site.updateAvailable === 'available')\n        .length &gt; 1 && (\n        &lt;button className=\"sm-btn\" onClick={updateAllPlugins}&gt;\n            \u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3092v.\u306b\u66f4\u65b0\u3059\u308b\n            {\n                sites.find((site) =&gt; site.updateVersion !== null)\n                    ?.updateVersion\n            }\n        &lt;\/button&gt;\n    )}\n    {sites.every((site) =&gt; site.updateAvailable !== 'available') && (\n        &lt;p&gt;\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u304c\u6700\u65b0\u306e\u72b6\u614b\u3067\u3059&lt;\/p&gt;\n    )}\n&lt;\/div&gt;<\/code><\/pre>\n<p>\u3053\u306e\u5b9f\u88c5\u306b\u3088\u308a\u3001MyKinsta\u306e\u4f01\u696d\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u7ba1\u7406\u3059\u308b\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3067\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u7c21\u5358\u306b\u66f4\u65b0\u3067\u304d\u308b\u3088\u3046\u306b\u3002\u65e5\u3005\u306e\u4f5c\u696d\u52b9\u7387\u304c\u9ad8\u307e\u308a\u3001\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u7c21\u5358\u306b\u6700\u65b0\u306e\u72b6\u614b\u306b\u7dad\u6301\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>React\u9759\u7684\u30b5\u30a4\u30c8\u3092Kinsta\u306b\u7121\u6599\u3067\u30c7\u30d7\u30ed\u30a4\u3059\u308b<\/h2>\n<p>\u4eca\u56de\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u306b\u306f\u3001<a href=\"https:\/\/sevalla.com\/static-site-hosting\/\">Kinsta\u306e\u9759\u7684\u30b5\u30a4\u30c8\u30b5\u30fc\u30d0\u30fc<\/a>\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u5b9f\u969b\u306b\u306f\u3001\u72ec\u81ea\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u304b\u3089\u3053\u306eReact\u30a2\u30d7\u30ea\u3092\u5b9f\u884c\u3059\u308b\u304b\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316\u306e\u305f\u3081\u30c4\u30fc\u30eb\u306b\u8a8d\u8a3c\u624b\u6bb5\u3092\u8ffd\u52a0\u3057\u305f\u5f8c\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u307e\u3059\u3002<\/p>\n<p>\u4efb\u610f\u306eGit\u30b5\u30fc\u30d3\u30b9\uff08<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>\u3001<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a>\u3001\u307e\u305f\u306f<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>\uff09\u306b\u30b3\u30fc\u30c9\u3092\u30d7\u30c3\u30b7\u30e5\u3059\u308b\u3053\u3068\u3067\u3001\u9759\u7684\u30b5\u30a4\u30c8\u30b5\u30fc\u30d0\u30fc\u3067\u3001<code>create-react-app<\/code>\u3067\u4f5c\u6210\u3057\u305fReact\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u9759\u7684\u30b5\u30a4\u30c8\u3068\u3057\u3066\u7121\u6599\u3067\u30db\u30b9\u30c8\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u6e96\u5099\u304c\u6574\u3063\u305f\u3089\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u306b\u5f93\u3063\u3066\u9759\u7684\u30b5\u30a4\u30c8\u3092Kinsta\u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<ol start=\"1\">\n<li>\u30ed\u30b0\u30a4\u30f3\u3001\u307e\u305f\u306f\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u3066<a href=\"https:\/\/my.kinsta.com\/?lang=ja\">MyKinsta<\/a>\u3092\u958b\u304f<\/li>\n<li>Git\u30b5\u30fc\u30d3\u30b9\u3067Kinsta\u3092\u8a8d\u8a3c<\/li>\n<li>\u5de6\u30b5\u30a4\u30c9\u30d0\u30fc\u306e\u300c<strong>\u9759\u7684\u30b5\u30a4\u30c8<\/strong>\u300d\u3092\u9078\u629e\u3057\u300c<strong>\u30b5\u30a4\u30c8\u306e\u8ffd\u52a0<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li>\n<li>\u30c7\u30d7\u30ed\u30a4\u3057\u305f\u3044\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30d6\u30e9\u30f3\u30c1\u3092\u9078\u629e<\/li>\n<li>\u30b5\u30a4\u30c8\u306b\u4e00\u610f\u306e\u540d\u524d\u3092\u5272\u308a\u5f53\u3066\u308b<\/li>\n<li>\u4ee5\u4e0b\u306e\u5f62\u5f0f\u3067\u30d3\u30eb\u30c9\u8a2d\u5b9a\u3092\u8ffd\u52a0\n<ul>\n<li><strong>\u30d3\u30eb\u30c9\u30b3\u30de\u30f3\u30c9<\/strong>\uff1anpm run build<\/li>\n<li><strong>Node\u30d0\u30fc\u30b8\u30e7\u30f3<\/strong>\uff1a18.16.0<\/li>\n<li><strong>\u516c\u958b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea<\/strong>\uff1abuild<\/li>\n<\/ul>\n<\/li>\n<li>\u300c<strong>\u30b5\u30a4\u30c8\u3092\u4f5c\u6210<\/strong>\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li>\n<\/ol>\n<p>\u4ee5\u4e0a\u3067\u5b8c\u4e86\u3067\u3059\u3002\u6570\u79d2\u4ee5\u5185\u306b\u30b5\u30a4\u30c8\u306e\u30c7\u30d7\u30ed\u30a4\u304c\u5b8c\u4e86\u3057\u3001\u30c7\u30d7\u30ed\u30a4\u304c\u5b8c\u4e86\u3057\u305f\u30b5\u30a4\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306e\u30ea\u30f3\u30af\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001<a href=\"https:\/\/docs.sevalla.com\/applications\/domains\">\u72ec\u81ea\u30c9\u30e1\u30a4\u30f3<\/a>\u3084<a href=\"https:\/\/docs.sevalla.com\/applications\/domains#install-a-custom-ssl-certificate\">SSL\u8a3c\u660e\u66f8<\/a>\u306e\u8a2d\u5b9a\u3082\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u9759\u7684\u30b5\u30a4\u30c8\u30b5\u30fc\u30d0\u30fc\u306e\u4ee3\u308f\u308a\u306b\u3001Kinsta\u306e<a href=\"https:\/\/sevalla.com\/application-hosting\/\">\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc<\/a>\u3067\u9759\u7684\u30b5\u30a4\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3001Dockerfile\u3092\u4f7f\u3063\u305f\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u304a\u3088\u3073\u904e\u53bb\u306e\u30c7\u30fc\u30bf\u3092\u7db2\u7f85\u3057\u305f<a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">\u5305\u62ec\u7684\u306a\u5206\u6790\u6a5f\u80fd<\/a>\u306a\u3069\u3001\u3088\u308a\u8c4a\u5bcc\u306a\u6a5f\u80fd\u3092\u3054\u5229\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002<\/p>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Kinsta API\u306f\u3001\u4eca\u56de\u3054\u7d39\u4ecb\u3057\u305f\u30c4\u30fc\u30eb\u306e\u69cb\u7bc9\u4ee5\u5916\u306b\u3082\u3001\u69d8\u3005\u306a\u53ef\u80fd\u6027\u3092\u3082\u305f\u3089\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u53e4\u304f\u306a\u308b\u3068Slack\u3067\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u308b<a href=\"https:\/\/kinsta.com\/jp\/blog\/create-slackbot-site-management\/\">\u72ec\u81eaSlackbot\u306e\u4f5c\u6210<\/a>\u306a\u3069\u3002\u3053\u306e\u7d71\u5408\u306b\u3088\u308a\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u304c\u5927\u5e45\u306b\u5408\u7406\u5316\u3057\u3001\u5e38\u306b\u6700\u65b0\u60c5\u5831\u3092\u53d6\u5f97\u3057\u306a\u304c\u3089\u3001\u5148\u624b\u3092\u6253\u3064\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001Kinsta API\u306b\u306f\u3059\u3067\u306b\u3053\u306e\u305f\u3081\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001<a href=\"https:\/\/api-docs.kinsta.com\/tag\/WordPress-Site-Themes-and-Plugins#operation\/updateTheme\" target=\"_blank\" rel=\"noopener noreferrer\">\u30c6\u30fc\u30de\u66f4\u65b0<\/a>\u7528\u306b\u540c\u69d8\u306e\u30c4\u30fc\u30eb\u3092\u958b\u767a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>Kinsta\u306f\u3001\u5e38\u306b\u304a\u5ba2\u69d8\u304b\u3089\u306e\u3054\u610f\u898b\u3092\u5927\u5207\u306b\u3057\u3001\u6a5f\u80fd\u306e\u5c0e\u5165\u3084\u6539\u5584\u306b\u7d99\u7d9a\u7684\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u7686\u3055\u307e\u304b\u3089\u306e\u3054\u610f\u898b\u306f\u3001\u6a5f\u80fd\u958b\u767a\u306e\u512a\u5148\u9806\u4f4d\u4ed8\u3051\u306e\u91cd\u8981\u306a\u6307\u6a19\u3067\u3059\u3002\u3054\u8981\u671b\u306e\u6a5f\u80fd\u3084\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u304c\u3042\u308a\u307e\u3057\u305f\u3089\u3001\u305c\u3072\u304a\u6c17\u8efd\u306b<a href=\"https:\/\/kinsta.com\/jp\/docs\/service-information\/kinsta-research-program\/#how-to-join\">\u3054\u610f\u898b\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044<\/a>\u3002<\/p>\n<p>Kinsta API\u3092\u3054\u5229\u7528\u3067\u3059\u304b\uff1f\u6a5f\u80fd\u306e\u5c0e\u5165\u3084\u6539\u5584\u306b\u95a2\u3057\u3066\u3001\u3054\u8981\u671b\u3084\u3054\u610f\u898b\u304c\u3054\u3056\u3044\u307e\u3057\u305f\u3089\u305c\u3072\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30d7\u30e9\u30b0\u30a4\u30f3\u306fWordPress\u30b5\u30a4\u30c8\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3084 &#8230;<\/p>\n","protected":false},"author":287,"featured_media":55038,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[751,783,802,833],"class_list":["post-55037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-kinsta-services","topic-react","topic-wordpress-plugins"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5<\/title>\n<meta name=\"description\" content=\"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Japan-334616080691171\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-14T18:23:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-26T07:12:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_JP\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/jp\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\",\"datePublished\":\"2024-02-14T18:23:14+00:00\",\"dateModified\":\"2024-02-26T07:12:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\"},\"wordCount\":234,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/jp\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\",\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\",\"name\":\"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/jp\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\",\"datePublished\":\"2024-02-14T18:23:14+00:00\",\"dateModified\":\"2024-02-26T07:12:37+00:00\",\"description\":\"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/jp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kinsta\u30b5\u30fc\u30d3\u30b9\",\"item\":\"https:\/\/kinsta.com\/jp\/topics\/kinsta-services\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/jp\/#website\",\"url\":\"https:\/\/kinsta.com\/jp\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"\u9ad8\u901f\u304b\u3064\u5805\u7262\u306a\u30d7\u30ec\u30df\u30a2\u30e0\u30b5\u30fc\u30d0\u30fc\u30b5\u30fc\u30d3\u30b9\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/jp\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/jp\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/jp\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/jp\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/kinsta.com\/jp\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/jp\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Japan-334616080691171\/\",\"https:\/\/x.com\/Kinsta_JP\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/jp\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/kinsta.com\/jp\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/jp\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","description":"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/","og_locale":"ja_JP","og_type":"article","og_title":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","og_description":"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002","og_url":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Japan-334616080691171\/","article_published_time":"2024-02-14T18:23:14+00:00","article_modified_time":"2024-02-26T07:12:37+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002","twitter_image":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_JP","twitter_misc":{"\u57f7\u7b46\u8005":"Joel Olawanle","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"8\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/jp\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","datePublished":"2024-02-14T18:23:14+00:00","dateModified":"2024-02-26T07:12:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/"},"wordCount":234,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/jp\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/","url":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/","name":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5","isPartOf":{"@id":"https:\/\/kinsta.com\/jp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","datePublished":"2024-02-14T18:23:14+00:00","dateModified":"2024-02-26T07:12:37+00:00","description":"Kinsta API\u3092\u6d3b\u7528\u3057\u3066\u3001\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4e00\u62ec\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002WordPress\u30b5\u30a4\u30c8\u7ba1\u7406\u306e\u5408\u7406\u5316\u306b\u304a\u5f79\u7acb\u3066\u304f\u3060\u3055\u3044\u3002","breadcrumb":{"@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","contentUrl":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2024\/02\/wp-bulk-update-plugins-wordpress.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/jp\/blog\/bulk-update-plugins-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/jp\/"},{"@type":"ListItem","position":2,"name":"Kinsta\u30b5\u30fc\u30d3\u30b9","item":"https:\/\/kinsta.com\/jp\/topics\/kinsta-services\/"},{"@type":"ListItem","position":3,"name":"\u3010Kinsta API\u3011\u8907\u6570\u306eWordPress\u30b5\u30a4\u30c8\u7528\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u4e00\u62ec\u66f4\u65b0\u30c4\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/jp\/#website","url":"https:\/\/kinsta.com\/jp\/","name":"Kinsta\u00ae","description":"\u9ad8\u901f\u304b\u3064\u5805\u7262\u306a\u30d7\u30ec\u30df\u30a2\u30e0\u30b5\u30fc\u30d0\u30fc\u30b5\u30fc\u30d3\u30b9","publisher":{"@id":"https:\/\/kinsta.com\/jp\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/jp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/jp\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/jp\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/kinsta.com\/jp\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/jp\/wp-content\/uploads\/sites\/6\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/jp\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Japan-334616080691171\/","https:\/\/x.com\/Kinsta_JP","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/jp\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/kinsta.com\/jp\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/jp\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/posts\/55037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/comments?post=55037"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/posts\/55037\/revisions"}],"predecessor-version":[{"id":55353,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/posts\/55037\/revisions\/55353"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/translations\/nl"},{"href":"https:\/\/kinsta.com\/jp\/wp-json\/kinsta\/v1\/posts\/55037\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/media\/55038"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/media?parent=55037"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/tags?post=55037"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/jp\/wp-json\/wp\/v2\/topic?post=55037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}