WordPress 跨域请求 JSON 并保存在本地
我在给一个 WordPress 主题添加一个功能:在首页显示当地的 PM2.5 指数。使用了这个第三方服务.
GET 方法可以直接请求到 JSON ,但是 请求次数有限制 (比如一小时最多 5 次),所以我想用 PHP 请求到我要的 JSON,然后保存在服务器上,这样用户访问页面时,直接从我的服务器上请求数据即可。
现在我有这两种思路:
我一开始的思路是,用 PHP 请求到 JSON 后,把 JSON 文件保存到 wp-content/uploads 目录(想法类似于上传文件),找到了
wp_handle_upload
这个函数(和一些零散的资料Link 1, Link 2),但是一直没弄明白怎么用,希望有用过的朋友能指点一下。后来又想到一个办法,在主题目录里面预先放一个 JSON 文件,然后用 PHP 请求第三方的数据之后再复写这个 JSON 文件。我想这样就避开了 “ 上传 ” 这个动作,直接操作一个 JSON 文件即可。
请问上面那一种方式更可行?如果可行,具体需要用到哪些技术?我后端知识浅薄,希望大家不吝赐教,先多谢了!
回复内容:
我在给一个 WordPress 主题添加一个功能:在首页显示当地的 PM2.5 指数。使用了这个第三方服务.
GET 方法可以直接请求到 JSON ,但是 请求次数有限制 (比如一小时最多 5 次),所以我想用 PHP 请求到我要的 JSON,然后保存在服务器上,这样用户访问页面时,直接从我的服务器上请求数据即可。
现在我有这两种思路:
我一开始的思路是,用 PHP 请求到 JSON 后,把 JSON 文件保存到 wp-content/uploads 目录(想法类似于上传文件),找到了
wp_handle_upload
这个函数(和一些零散的资料Link 1, Link 2),但是一直没弄明白怎么用,希望有用过的朋友能指点一下。后来又想到一个办法,在主题目录里面预先放一个 JSON 文件,然后用 PHP 请求第三方的数据之后再复写这个 JSON 文件。我想这样就避开了 “ 上传 ” 这个动作,直接操作一个 JSON 文件即可。
请问上面那一种方式更可行?如果可行,具体需要用到哪些技术?我后端知识浅薄,希望大家不吝赐教,先多谢了!
就一个小功能而已,不和WordPress扯上关系也完全么问题呀。直接写一个PHP文件,将抓取过来的JSON文件放到wp-content/uploads
目录内,如果文件存在,则直接读取,不存在则进行抓取工作。文件的文件名可以采用“时间地点”的格式。至于主题里头直接就用file_get_contents
获取就OK了。给个示例代码:
<code><?php $name = "20140129Beijing"; $file = './wp-content/uploads/'.$name.'.json'; $api_url = ""; if(file_exist($file)) { echo file_get_contents($file); } else { $json = file_get_contents($api_url); file_put_contents($json, $file); echo $json; } ?> </code>
用用WordPress的API,也是个好选择。再不济WordPress也是个封装了很多东西的框架嘛。
WordPress插件(或主题)如果想存储少量数据,也不必用文件这么麻烦,大可直接借助WordPress的选项系统,把数据扔进wp_options
表中。就像这样:
<code><?php $pm25_mod_data = get_option('pm25_mod_data_cache'); if (!$pm25_mod_data) { $pm25_mod_data = file_get_contents($pm25_mod_apiurl); //这里也可以调用你做API请求的任何有效代码或函数调用 add_option('pm25_mod_data_cache', $pm25_mod_data); } echo $pm25_mod_data; //或任何其他的格式化输出 ?> </code>
以上这段代码只能实现访客首次访问,且由于种种原因没有缓存时不出错。
你还需要有一个定时刷新,强行更新缓存内容的机制。
这个你应该查查WordPress Cron - WordPress封装了一个环境无关的计划任务系统,既能在可以使用真实cron的平台工作,也可以在没有计划任务程序的情况下“变通的”工作。用这个来定时取最新数据很适合。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

WordPress 기사 목록을 조정하는 4 가지 방법이 있습니다. 테마 옵션 사용, 플러그인 사용 (예 : Post Type Order, WP Post List, Boxy Sitture), 코드 사용 (Functions.php 파일의 설정 추가) 또는 WordPress 데이터베이스를 직접 수정하십시오.

WordPress 호스트를 사용하여 웹 사이트를 구축하려면 다음과 같이 필요합니다. 신뢰할 수있는 호스팅 제공 업체를 선택하십시오. 도메인 이름을 구입하십시오. WordPress 호스팅 계정을 설정하십시오. 주제를 선택하십시오. 페이지와 기사를 추가하십시오. 플러그인을 설치하십시오. 웹 사이트를 사용자 정의하십시오. 귀하의 웹 사이트를 게시하십시오.

WordPress의 헤더 이미지를 교체하기위한 단계별 안내서 : WordPress 대시 보드에 로그인하고 모양 & gt; 테마로 이동하십시오. 편집 할 주제를 선택하고 사용자 정의를 클릭하십시오. 테마 옵션 패널을 열고 사이트 헤더 또는 헤더 이미지 옵션을 찾으십시오. 이미지 선택 버튼을 클릭하고 새 헤드 이미지를 업로드하십시오. 이미지를 자르고 저장 및 자르기를 클릭하십시오. 저장 및 게시 버튼을 클릭하여 변경 사항을 업데이트하십시오.

IIS 및 PHP는 호환 가능하며 FastCGI를 통해 구현됩니다. 1. IIS 구성 파일을 통해 .php 파일 요청을 FastCGI 모듈로 전달합니다. 2. FASTCGI 모듈은 PHP 프로세스를 시작하여 요청을 처리하여 성능과 안정성을 향상시킵니다. 3. 실제 응용 프로그램에서는 구성 세부 사항, 오류 디버깅 및 성능 최적화에주의를 기울여야합니다.

대시 보드에 로그인하고보기 사이트 탭으로 전환하여 WordPress 프론트 엔드를 볼 수 있습니다. 헤드리스 브라우저로 시청 프로세스를 자동화하십시오. 대시 보드 내에서 프론트 엔드를 미리 볼 수 있도록 WordPress 플러그인 설치; 로컬 URL을 통해 프론트 엔드를보십시오 (WordPress가 로컬로 설정된 경우).

WordPress 소스 코드 가져 오기에는 다음 단계가 필요합니다. 테마 수정을위한 하위 주제를 만듭니다. 소스 코드를 가져 와서 하위 주제에서 파일을 덮어 씁니다. 하위 주제를 활성화하여 효과적입니다. 모든 것이 작동하는지 확인하기 위해 변경 사항을 테스트하십시오.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

WordPress 편집 날짜는 세 가지 방법으로 취소 할 수 있습니다. 1. Post Date Disable 플러그인 설치; 2. functions.php 파일에 코드를 추가합니다. 3. WP_Posts 테이블에서 Post_Modified 열을 수동으로 편집합니다.
