diff options
| author | emkael <emkael@tlen.pl> | 2026-09-05 14:55:29 +0200 |
|---|---|---|
| committer | emkael <emkael@tlen.pl> | 2026-09-05 14:55:29 +0200 |
| commit | da851ff789bf573a58e85257d36faa282eed76e3 (patch) | |
| tree | 60cf512e29364b41ce1bc5b9c83b43024355a3bd /providers | |
| parent | ad6b96a581fc815b555f31e48716ce44c5df9075 (diff) | |
Wordpress JSON feed provider
Diffstat (limited to 'providers')
| -rw-r--r-- | providers/Wpjson.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/providers/Wpjson.php b/providers/Wpjson.php new file mode 100644 index 0000000..94fd6d7 --- /dev/null +++ b/providers/Wpjson.php @@ -0,0 +1,54 @@ +<?php + +namespace Providers; + +require_once('JsonFeed.php'); +require_once('Item.php'); + +class Wpjson extends \Providers\JsonFeed { + + protected function _getFeedUrl($feed) { + $config = json_decode(file_get_contents('../config/wp-json.json'), TRUE); + if (isset($config[$feed])) { + return $config[$feed]; + } + return NULL; + } + + protected function _getCachePath() { + return '../cache/wpjson.%s'; + } + + protected function _parseFeedContent($feed) { + return $feed; + } + + private function _getRenderedProperty($prop) { + if (is_object($prop)) { + return strval($prop->rendered); + } + return strval($prop); + } + + protected function _mapItems($content) { + $items = []; + foreach ($content as $item) { + $itemObject = new Item(); + $itemObject->ID = $this->_getRenderedProperty($item->guid); + $itemObject->Title = $this->_getRenderedProperty($item->title); + $itemObject->Time = strtotime($this->_getRenderedProperty($item->date_gmt)); + $itemObject->Text = $this->_getRenderedProperty($item->content); + $itemObject->Link = $this->_getRenderedProperty($item->link); + $itemObject->Author = $this->_getRenderedProperty($this->_feed); + $items[] = $itemObject; + } + return $items; + } + + public function title() { + return sprintf('%s Wordpress posts', $this->_feed); + } + +} + +?> |
