}else if(is_file($mobile_path)){
@unlink($mobile_path);
}
}
}
}
}
public function singleDeleteCache($comment_id = false, $post_id = false, $to_clear_parents = true){
if($varnish_datas = get_option("WpFastestCacheVarnish")){
include_once('inc/varnish.php');
VarnishWPFC::purge_cache($varnish_datas);
}
include_once('inc/cdn.php');
CdnWPFC::cloudflare_clear_cache();
$to_clear_feed = true;
// not to clear cache of homepage/cats/tags after ajax request by other plugins
if(isset($_POST) && isset($_POST["action"])){
// kk Star Rating
if($_POST["action"] == "kksr_ajax"){
$to_clear_parents = false;
}
// All In One Schema.org Rich Snippets
if(preg_match("/bsf_(update|submit)_rating/i", $_POST["action"])){
$to_clear_parents = false;
}
// Yet Another Stars Rating
if($_POST["action"] == "yasr_send_visitor_rating"){
$to_clear_parents = false;
$post_id = sanitize_text_field($_POST["post_id"]);
}
// All In One Schema.org Rich Snippets
if(preg_match("/bsf_(update|submit)_rating/i", $_POST["action"])){
$to_clear_feed = false;
}
}
if($comment_id){
$comment_id = intval($comment_id);
$comment = get_comment($comment_id);
if($comment && $comment->comment_post_ID){
$post_id = $comment->comment_post_ID;
}
}
if($post_id){
$post_id = intval($post_id);
$permalink = get_permalink($post_id);
$permalink = urldecode(get_permalink($post_id));
//for trash contents
if(preg_match("/\/\?(p|page_id)\=\d+/i", $permalink)){
$post = get_post($post_id);
$clone_post = clone $post;
$clone_post->post_status = 'publish';
$permalink = get_permalink($clone_post);
$permalink = rtrim($permalink, "/");
$permalink = preg_replace("/__trashed$/", "", $permalink);
//for /%postname%/%post_id% : sample-url__trashed/57595
$permalink = preg_replace("/__trashed\/(\d+)$/", "/$1", $permalink);
}
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out)){
$path = $this->getWpContentDir("/cache/all/").$out[1];
$mobile_path = $this->getWpContentDir("/cache/wpfc-mobile-cache/").$out[1];
if($this->isPluginActive("wp-fastest-cache-premium/wpFastestCachePremium.php")){
include_once $this->get_premium_path("logs.php");
$log = new WpFastestCacheLogs("delete");
$log->action();
}
$files = array();
if(is_dir($path)){
array_push($files, $path);
}
if(is_dir($mobile_path)){
array_push($files, $mobile_path);
}
if(defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){
$files_with_query_string = glob($path."\?*");
$mobile_files_with_query_string = glob($mobile_path."\?*");
if(is_array($files_with_query_string) && (count($files_with_query_string) > 0)){
$files = array_merge($files, $files_with_query_string);
}
if(is_array($mobile_files_with_query_string) && (count($mobile_files_with_query_string) > 0)){
$files = array_merge($files, $mobile_files_with_query_string);
}
}
if($to_clear_feed){
// to clear cache of /feed
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", get_feed_link(), $feed_out)){
array_push($files, $this->getWpContentDir("/cache/all/").$feed_out[1]);
}
// to clear cache of /comments/feed/
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", get_feed_link("comments_"), $comment_feed_out)){
array_push($files, $this->getWpContentDir("/cache/all/").$comment_feed_out[1]);
}
}
foreach((array)$files as $file){
$this->rm_folder_recursively($file);
}
}
if($to_clear_parents){
// to clear cache of homepage
$this->deleteHomePageCache();
// to clear cache of author page
$this->delete_author_page_cache($post_id);
// to clear sitemap cache
$this->delete_sitemap_cache();
// to clear cache of next post and cache of prev post
$this->delete_next_prev_cache($post_id);
// to clear cache of cats and tags which contains the post (only first page)
global $wpdb;
$terms = $wpdb->get_results("SELECT * FROM `".$wpdb->prefix."term_relationships` WHERE `object_id`=".$post_id, ARRAY_A);
foreach ($terms as $term_key => $term_val){
$this->delete_cache_of_term($term_val["term_taxonomy_id"]);
}
}
$this->delete_multiple_domain_mapping_cache();
}
}
public function delete_next_prev_cache($post_id){
global $wpdb;
$post = get_post($post_id);
$next_post_query = "SELECT * FROM `".$wpdb->prefix."posts` WHERE ID = (SELECT min(ID) FROM `".$wpdb->prefix."posts` where ID > ".$post_id." AND `post_type` = '".$post->post_type."' AND `post_status` = 'publish')";
$prev_post_query = "SELECT * FROM `".$wpdb->prefix."posts` WHERE ID = (SELECT max(ID) FROM `".$wpdb->prefix."posts` where ID < ".$post_id." AND `post_type` = '".$post->post_type."' AND `post_status` = 'publish')";
$res = $wpdb->get_results($next_post_query." UNION ".$prev_post_query);
if(isset($res[0])){
foreach ($res as $key => $value) {
$permalink = urldecode(get_permalink($value->ID));
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out)){
$path = $this->getWpContentDir("/cache/all/").$out[1];
$mobile_path = $this->getWpContentDir("/cache/wpfc-mobile-cache/").$out[1];
if(is_dir($path)){
$this->rm_folder_recursively($path);
}
if(is_dir($mobile_path)){
$this->rm_folder_recursively($mobile_path);
}
}
}
}
}
public function delete_sitemap_cache(){
//to clear sitemap.xml and sitemap-(.+).xml
$files = array_merge(glob($this->getWpContentDir("/cache/all/")."sitemap*.xml"), glob($this->getWpContentDir("/cache/wpfc-mobile-cache/")."sitemap*.xml"));
foreach((array)$files as $file){
$this->rm_folder_recursively($file);
}
}
public function delete_multiple_domain_mapping_cache($minified = false){
//https://wordpress.org/plugins/multiple-domain-mapping-on-single-site/
if($this->isPluginActive("multiple-domain-mapping-on-single-site/multidomainmapping.php")){
$multiple_arr = get_option('falke_mdm_mappings');
if(isset($multiple_arr) && isset($multiple_arr["mappings"]) && isset($multiple_arr["mappings"][0])){
foreach($multiple_arr["mappings"] as $mapping_key => $mapping_value){
if($minified){
$mapping_domain_path = preg_replace("/(\/cache\/[^\/]+\/all\/)/", "/cache/".$mapping_value["domain"]."/", $this->getWpContentDir("/cache/all/"));
if(is_dir($mapping_domain_path)){
if(@rename($mapping_domain_path, $this->getWpContentDir("/cache/tmpWpfc/").$mapping_value["domain"]."_".time())){
}
}
}else{
$mapping_domain_path = preg_replace("/(\/cache\/[^\/]+\/all)/", "/cache/".$mapping_value["domain"]."/all", $this->getWpContentDir("/cache/all/index.html"));
@unlink($mapping_domain_path);
}
}
}
}
}
public function delete_author_page_cache($post_id){
$author_id = get_post_field ('post_author', $post_id);
$permalink = get_author_posts_url($author_id);
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out)){
$path = $this->getWpContentDir("/cache/all/").$out[1];
$mobile_path = $this->getWpContentDir("/cache/wpfc-mobile-cache/").$out[1];
$this->move_folder_to_tmpWpfc($path);
$this->move_folder_to_tmpWpfc($mobile_path);
}
}
public function move_folder_to_tmpWpfc($path = false){
if(!is_dir($this->getWpContentDir("/cache/tmpWpfc"))){
@mkdir($this->getWpContentDir("/cache/tmpWpfc"), 0755, true);
}
if(!$path){
return false;
}
if(!is_dir($this->getWpContentDir("/cache/tmpWpfc"))){
return false;
}
if(is_dir($path)){
preg_match("/\/([^\/]+)\/?$/", $path, $type);
if(isset($type[1])){
if(preg_match("/\/cache\/wpfc-mobile-cache\//", $path)){
$type[1] = "m_".$type[1];
}
$move_to = $this->getWpContentDir("/cache/tmpWpfc/").$type[1]."_".time();
rename($path, $move_to);
}
}
}
public function delete_cache_of_term($term_taxonomy_id){
$term = get_term_by("term_taxonomy_id", $term_taxonomy_id);
if(!$term || is_wp_error($term)){
return false;
}
//if(preg_match("/cat|tag|store|listing/", $term->taxonomy)){}
$url = get_term_link($term->term_id, $term->taxonomy);
if(preg_match("/^http/", $url)){
$path = preg_replace("/https?\:\/\/[^\/]+/i", "", $url);
$path = trim($path, "/");
$path = urldecode($path);
// to remove the cache of tag/cat
if(file_exists($this->getWpContentDir("/cache/all/").$path."/index.html")){
@unlink($this->getWpContentDir("/cache/all/").$path."/index.html");
}
if(file_exists($this->getWpContentDir("/cache/wpfc-mobile-cache/").$path."/index.html")){
@unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/").$path."/index.html");
}
// to remove the cache of the pages
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/").$path."/page");
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/").$path."/page");
// to remove the cache of the feeds
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/").$path."/feed");
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/").$path."/feed");
}
if($term->parent > 0){
$parent = get_term_by("id", $term->parent, $term->taxonomy);
if(isset($parent->term_taxonomy_id)){
$this->delete_cache_of_term($parent->term_taxonomy_id);
}
}
}
public function unlink($path){
if(file_exists($path)){
unlink($path);
}
}
public function deleteHomePageCache($log = true){
if($varnish_datas = get_option("WpFastestCacheVarnish")){
include_once('inc/varnish.php');
VarnishWPFC::purge_cache($varnish_datas);
}
include_once('inc/cdn.php');
CdnWPFC::cloudflare_clear_cache();
$site_url_path = preg_replace("/https?\:\/\/[^\/]+/i", "", site_url());
$home_url_path = preg_replace("/https?\:\/\/[^\/]+/i", "", home_url());
if($site_url_path){
$site_url_path = trim($site_url_path, "/");
if($site_url_path){
$this->unlink($this->getWpContentDir("/cache/all/").$site_url_path."/index.html");
$this->unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/").$site_url_path."/index.html");
//to clear pagination of homepage cache
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/").$site_url_path."/page");
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/").$site_url_path."/page");
}
}
if($home_url_path){
$home_url_path = trim($home_url_path, "/");
if($home_url_path){
$this->unlink($this->getWpContentDir("/cache/all/").$home_url_path."/index.html");
$this->unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/").$home_url_path."/index.html");
//to clear pagination of homepage cache
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/").$home_url_path."/page");
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/").$home_url_path."/page");
}
}
if(function_exists("wc_get_page_id")){
if($shop_id = wc_get_page_id('shop')){
$store_url_path = preg_replace("/https?\:\/\/[^\/]+/i", "", get_permalink($shop_id));
if($store_url_path){
$store_url_path = trim($store_url_path, "/");
if($store_url_path){
if(file_exists($this->getWpContentDir("/cache/all/").$store_url_path."/index.html")){
@unlink($this->getWpContentDir("/cache/all/").$store_url_path."/index.html");
}
if(file_exists($this->getWpContentDir("/cache/wpfc-mobile-cache/").$store_url_path."/index.html")){
@unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/").$store_url_path."/index.html");
}
//to clear pagination of store homepage cache
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/").$store_url_path."/page");
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/").$store_url_path."/page");
}
}
}
}
$this->unlink($this->getWpContentDir("/cache/all/index.html"));
$this->unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/index.html"));
//to clear pagination of homepage cache
$this->rm_folder_recursively($this->getWpContentDir("/cache/all/page"));
$this->rm_folder_recursively($this->getWpContentDir("/cache/wpfc-mobile-cache/page"));
// options-reading.php - static posts page
if($page_for_posts_id = get_option('page_for_posts')){
$page_for_posts_permalink = urldecode(get_permalink($page_for_posts_id));
$page_for_posts_permalink = rtrim($page_for_posts_permalink, "/");
$page_for_posts_permalink = preg_replace("/__trashed$/", "", $page_for_posts_permalink);
//for /%postname%/%post_id% : sample-url__trashed/57595
$page_for_posts_permalink = preg_replace("/__trashed\/(\d+)$/", "/$1", $page_for_posts_permalink);
if(preg_match("/https?:\/\/[^\/]+\/(.+)/", $page_for_posts_permalink, $out)){
$page_for_posts_path = $this->getWpContentDir("/cache/all/").$out[1];
$page_for_posts_mobile_path = $this->getWpContentDir("/cache/wpfc-mobile-cache/").$out[1];
$this->rm_folder_recursively($page_for_posts_path);
$this->rm_folder_recursively($page_for_posts_mobile_path);
}
}
if($log){
if($this->isPluginActive("wp-fastest-cache-premium/wpFastestCachePremium.php")){
include_once $this->get_premium_path("logs.php");
$log = new WpFastestCacheLogs("delete");
$log->action();
}
}
}
public function deleteCache($minified = false){
if($varnish_datas = get_option("WpFastestCacheVarnish")){
include_once('inc/varnish.php');
VarnishWPFC::purge_cache($varnish_datas);
}
include_once('inc/cdn.php');
CdnWPFC::cloudflare_clear_cache();
$this->set_preload();
$created_tmpWpfc = false;
$cache_deleted = false;
$minifed_deleted = false;
$cache_path = $this->getWpContentDir("/cache/all");
$minified_cache_path = $this->getWpContentDir("/cache/wpfc-minified");
if(class_exists("WpFcMobileCache")){
if(is_dir($this->getWpContentDir("/cache/wpfc-mobile-cache"))){
if(is_dir($this->getWpContentDir("/cache/tmpWpfc"))){
rename($this->getWpContentDir("/cache/wpfc-mobile-cache"), $this->getWpContentDir("/cache/tmpWpfc/mobile_").time());
}else if(@mkdir($this->getWpContentDir("/cache/tmpWpfc"), 0755, true)){
rename($this->getWpContentDir("/cache/wpfc-mobile-cache"), $this->getWpContentDir("/cache/tmpWpfc/mobile_").time());
}
}
}
if(!is_dir($this->getWpContentDir("/cache/tmpWpfc"))){
if(@mkdir($this->getWpContentDir("/cache/tmpWpfc"), 0755, true)){
$created_tmpWpfc = true;
}else{
$created_tmpWpfc = false;
//$this->systemMessage = array("Permission of /wp-content/cache must be 755", "error");
}
}else{
$created_tmpWpfc = true;
}
//to clear widget cache path
$this->deleteWidgetCache();
$this->delete_multiple_domain_mapping_cache($minified);
if(is_dir($cache_path)){
if(@rename($cache_path, $this->getWpContentDir("/cache/tmpWpfc/").time())){
delete_option("WpFastestCacheHTML");
delete_option("WpFastestCacheHTMLSIZE");
delete_option("WpFastestCacheMOBILE");
delete_option("WpFastestCacheMOBILESIZE");
$cache_deleted = true;
}
}else{
$cache_deleted = true;
}
if($minified){
if(is_dir($minified_cache_path)){
if(@rename($minified_cache_path, $this->getWpContentDir("/cache/tmpWpfc/m").time())){
delete_option("WpFastestCacheCSS");
delete_option("WpFastestCacheCSSSIZE");
delete_option("WpFastestCacheJS");
delete_option("WpFastestCacheJSSIZE");
$minifed_deleted = true;
}
}else{
$minifed_deleted = true;
}
}else{
$minifed_deleted = true;
}
if($created_tmpWpfc && $cache_deleted && $minifed_deleted){
do_action('wpfc_delete_cache');
$this->notify(array("All cache files have been deleted", "updated"));
if($this->isPluginActive("wp-fastest-cache-premium/wpFastestCachePremium.php")){
include_once $this->get_premium_path("logs.php");
$log = new WpFastestCacheLogs("delete");
$log->action();
}
}else{
$this->notify(array("Permissions Problem: Read More", "error"));
}
// for ajax request
if(isset($_GET["action"]) && in_array($_GET["action"], array("wpfc_delete_cache", "wpfc_delete_cache_and_minified"))){
die(json_encode($this->systemMessage));
}
}
public function checkCronTime(){
$crons = _get_cron_array();
foreach ((array)$crons as $cron_key => $cron_value) {
foreach ( (array) $cron_value as $hook => $events ) {
if(preg_match("/^wp\_fastest\_cache(.*)/", $hook, $id)){
if(!$id[1] || preg_match("/^\_(\d+)$/", $id[1])){
foreach ( (array) $events as $event_key => $event ) {
add_action("wp_fastest_cache".$id[1], array($this, 'setSchedule'));
}
}
}
}
}
add_action($this->slug()."_Preload", array($this, 'create_preload_cache'), 11);
}
public function set_preload(){
include_once('inc/preload.php');
PreloadWPFC::set_preload($this->slug());
}
public function create_preload_cache(){
$this->options = $this->getOptions();
include_once('inc/preload.php');
PreloadWPFC::create_preload_cache($this->options);
}
public function wpfc_remote_get($url, $user_agent, $return_content = false){
//$response = wp_remote_get($url, array('timeout' => 10, 'sslverify' => false, 'headers' => array("cache-control" => array("no-store, no-cache, must-revalidate", "post-check=0, pre-check=0"),'user-agent' => $user_agent)));
$response = wp_remote_get($url, array('user-agent' => $user_agent, 'timeout' => 10, 'sslverify' => false, 'headers' => array("cache-control" => "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")));
if (!$response || is_wp_error($response)){
echo $response->get_error_message()." - ";
return false;
}else{
if(wp_remote_retrieve_response_code($response) != 200){
return false;
}
if($return_content){
if(wp_remote_retrieve_response_code($response) == 200){
$data = wp_remote_retrieve_body($response);
return $data;
}
}
}
return true;
}
public function setSchedule($args = ""){
if($args){
$rule = json_decode($args);
if($rule->prefix == "all"){
$this->deleteCache();
}else if($rule->prefix == "homepage"){
$this->deleteHomePageCache();
if(isset($this->options->wpFastestCachePreload_homepage) && $this->options->wpFastestCachePreload_homepage){
$this->wpfc_remote_get(get_option("home"), "WP Fastest Cache Preload Bot - After Cache Timeout");
$this->wpfc_remote_get(get_option("home"), "WP Fastest Cache Preload iPhone Mobile Bot - After Cache Timeout");
}
}else if($rule->prefix == "startwith"){
if(!is_dir($this->getWpContentDir("/cache/tmpWpfc"))){
if(@mkdir($this->getWpContentDir("/cache/tmpWpfc"), 0755, true)){}
}
$rule->content = trim($rule->content, "/");
$files = glob($this->getWpContentDir("/cache/all/").$rule->content."*");
foreach ((array)$files as $file) {
$mobile_file = str_replace("/cache/all/", "/cache/wpfc-mobile-cache/", $file);
@rename($file, $this->getWpContentDir("/cache/tmpWpfc/").time());
@rename($mobile_file, $this->getWpContentDir("/cache/tmpWpfc/mobile_").time());
}
}else if($rule->prefix == "exact"){
$rule->content = trim($rule->content, "/");
@unlink($this->getWpContentDir("/cache/all/").$rule->content."/index.html");
@unlink($this->getWpContentDir("/cache/wpfc-mobile-cache/").$rule->content."/index.html");
}
if($rule->prefix != "all"){
if($this->isPluginActive("wp-fastest-cache-premium/wpFastestCachePremium.php")){
include_once $this->get_premium_path("logs.php");
$log = new WpFastestCacheLogs("delete");
$log->action($rule);
}
}
}else{
//for old cron job
$this->deleteCache();
}
}
public function modify_htaccess_for_new_user($user_id){
$path = ABSPATH;
if($this->is_subdirectory_install()){
$path = $this->getABSPATH();
}
$htaccess = @file_get_contents($path.".htaccess");
if(preg_match("/\#\s?Start_WPFC_Exclude_Admin_Cookie/", $htaccess)){
$rules = $this->excludeAdminCookie();
$htaccess = preg_replace("/\#\s?Start_WPFC_Exclude_Admin_Cookie[^\#]*\#\s?End_WPFC_Exclude_Admin_Cookie\s+/", $rules, $htaccess);
}
@file_put_contents($path.".htaccess", $htaccess);
}
public function excludeAdminCookie(){
$usernames = array();
$users_groups = array_chunk(get_users(array("role" => "administrator", "fields" => array("user_login"))), 5);
foreach ($users_groups as $group_key => $group) {
$tmp_user = "";
$tmp_rule = "";
foreach ($group as $key => $value) {
$tmp_user = sanitize_user(wp_unslash($value->user_login), true);
/*
to replace spaces with %20
1. Empty space character causes 500 internal server error
2. "\s" is not detected by htaccess so we added "%20"
*/
$tmp_user = preg_replace("/\s/", "%20", $tmp_user);
array_push($usernames, $tmp_user);
}
}
$rule = "# Start_WPFC_Exclude_Admin_Cookie\n";
$rule = $rule."RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=".implode("|", $usernames);
$rule = $rule."\n# End_WPFC_Exclude_Admin_Cookie\n";
return $rule;
}
public function excludeRules(){
$htaccess_page_rules = "";
$htaccess_page_useragent = "";
$htaccess_page_cookie = "";
$rules_json = get_option("WpFastestCacheExclude");
if(!empty($rules_json) && $rules_json !== "null"){
$rules_std = json_decode($rules_json);
// JSON hatalıysa çık
if (json_last_error() !== JSON_ERROR_NONE || !is_array($rules_std)) {
return "";
}
foreach ($rules_std as $value) {
// default type
$value->type = isset($value->type) ? $value->type : "page";
// content yoksa skip
if(empty($value->content)){
continue;
}
// HTML entity decode (örn: < >)
$content = html_entity_decode($value->content, ENT_QUOTES, 'UTF-8');
// ---------- PAGE RULES ----------
if($value->type == "page"){
// REGEX (escape yok!)
if(isset($value->prefix) && $value->prefix == "regex"){
// basit regex validation (çok kırılmayı önler)
if(@preg_match("/".$content."/", null) === false){
continue; // hatalı regex skip
}
$htaccess_page_rules .= "RewriteCond %{REQUEST_URI} !".$content." [NC]\n";
}
// NORMAL RULES (escape var)
else{
// regex injection önleme
$safe_content = preg_quote($content, "/");
if($value->prefix == "startwith"){
$safe_content = ltrim($safe_content, "/");
$htaccess_page_rules .= "RewriteCond %{REQUEST_URI} !^/".$safe_content." [NC]\n";
}
if($value->prefix == "contain"){
$htaccess_page_rules .= "RewriteCond %{REQUEST_URI} !".$safe_content." [NC]\n";
}
if($value->prefix == "exact"){
$safe_content = trim($safe_content, "/");
$htaccess_page_rules .= "RewriteCond %{REQUEST_URI} !^/".$safe_content."$ [NC]\n";
}
}
}
// ---------- USER AGENT ----------
else if($value->type == "useragent"){
$safe_content = preg_quote($content, "/");
$htaccess_page_useragent .= "RewriteCond %{HTTP_USER_AGENT} !".$safe_content." [NC]\n";
}
// ---------- COOKIE ----------
else if($value->type == "cookie"){
if($value->prefix == "contain"){
$safe_content = preg_quote($content, "/");
$htaccess_page_cookie .= "RewriteCond %{HTTP:Cookie} !".$safe_content." [NC]\n";
}else if($value->prefix == "regex"){
// basit regex validation (çok kırılmayı önler)
if(@preg_match("/".$content."/", null) === false){
continue; // hatalı regex skip
}
$htaccess_page_cookie .= "RewriteCond %{HTTP:Cookie} !".$content." [NC]\n";
}
}
}
}
return "# Start WPFC Exclude\n"
.$htaccess_page_rules
.$htaccess_page_useragent
.$htaccess_page_cookie
."# End WPFC Exclude\n";
}
public function getABSPATH(){
if(function_exists("get_home_path")){
return get_home_path();
}else{
$path = ABSPATH;
$siteUrl = site_url();
$homeUrl = home_url();
$diff = str_replace($homeUrl, "", $siteUrl);
$diff = trim($diff,"/");
$pos = strrpos($path, $diff);
if($pos !== false){
$path = substr_replace($path, "", $pos, strlen($diff));
$path = trim($path,"/");
$path = "/".$path."/";
}
return $path;
}
}
public function rm_folder_recursively($dir, &$i = 1) {
if (!is_dir($dir)) {
return true;
}
$files = @scandir($dir);
if ($files === false) {
return true;
}
foreach ($files as $file) {
if ($file === '.' || $file === '..') {
continue;
}
if ($i > 100 && !preg_match("/wp-fastest-cache-premium/i", $dir)) {
return true;
}
$path = $dir . '/' . $file;
if (is_dir($path)) {
$this->rm_folder_recursively($path, $i);
} else {
if (file_exists($path)) {
@unlink($path);
$i++;
}
}
}
if (is_dir($dir)) {
$files_tmp = @scandir($dir);
if ($files_tmp !== false && count($files_tmp) <= 2) {
@rmdir($dir);
}
}
return true;
}
public function is_subdirectory_install(){
if(strlen(site_url()) > strlen(home_url())){
return true;
}
return false;
}
protected function getMobileUserAgents(){
return implode("|", $this->get_mobile_browsers())."|".implode("|", $this->get_operating_systems());
}
public function get_premium_path($name){
return WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/library/".$name;
}
public function cron_add_minute( $schedules ) {
$schedules['everyminute'] = array(
'interval' => 60*1,
'display' => __( 'Once Every 1 Minute' ),
'wpfc' => true
);
$schedules['everyfiveminute'] = array(
'interval' => 60*5,
'display' => __( 'Once Every 5 Minutes' ),
'wpfc' => true
);
$schedules['everyfifteenminute'] = array(
'interval' => 60*15,
'display' => __( 'Once Every 15 Minutes' ),
'wpfc' => true
);
$schedules['twiceanhour'] = array(
'interval' => 60*30,
'display' => __( 'Twice an Hour' ),
'wpfc' => true
);
$schedules['onceanhour'] = array(
'interval' => 60*60,
'display' => __( 'Once an Hour' ),
'wpfc' => true
);
$schedules['everytwohours'] = array(
'interval' => 60*60*2,
'display' => __( 'Once Every 2 Hours' ),
'wpfc' => true
);
$schedules['everythreehours'] = array(
'interval' => 60*60*3,
'display' => __( 'Once Every 3 Hours' ),
'wpfc' => true
);
$schedules['everyfourhours'] = array(
'interval' => 60*60*4,
'display' => __( 'Once Every 4 Hours' ),
'wpfc' => true
);
$schedules['everyfivehours'] = array(
'interval' => 60*60*5,
'display' => __( 'Once Every 5 Hours' ),
'wpfc' => true
);
$schedules['everysixhours'] = array(
'interval' => 60*60*6,
'display' => __( 'Once Every 6 Hours' ),
'wpfc' => true
);
$schedules['everysevenhours'] = array(
'interval' => 60*60*7,
'display' => __( 'Once Every 7 Hours' ),
'wpfc' => true
);
$schedules['everyeighthours'] = array(
'interval' => 60*60*8,
'display' => __( 'Once Every 8 Hours' ),
'wpfc' => true
);
$schedules['everyninehours'] = array(
'interval' => 60*60*9,
'display' => __( 'Once Every 9 Hours' ),
'wpfc' => true
);
$schedules['everytenhours'] = array(
'interval' => 60*60*10,
'display' => __( 'Once Every 10 Hours' ),
'wpfc' => true
);
$schedules['onceaday'] = array(
'interval' => 60*60*24,
'display' => __( 'Once a Day' ),
'wpfc' => true
);
$schedules['everythreedays'] = array(
'interval' => 60*60*24*3,
'display' => __( 'Once Every 3 Days' ),
'wpfc' => true
);
$schedules['everysevendays'] = array(
'interval' => 60*60*24*7,
'display' => __( 'Once Every 7 Days' ),
'wpfc' => true
);
$schedules['everytendays'] = array(
'interval' => 60*60*24*10,
'display' => __( 'Once Every 10 Days' ),
'wpfc' => true
);
$schedules['everyfifteendays'] = array(
'interval' => 60*60*24*15,
'display' => __( 'Once Every 15 Days' ),
'wpfc' => true
);
$schedules['montly'] = array(
'interval' => 60*60*24*30,
'display' => __( 'Once a Month' ),
'wpfc' => true
);
$schedules['yearly'] = array(
'interval' => 60*60*24*30*12,
'display' => __( 'Once a Year' ),
'wpfc' => true
);
return $schedules;
}
public function setCustomInterval(){
add_filter( 'cron_schedules', array($this, 'cron_add_minute'));
}
public function isPluginActive( $plugin ) {
return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || $this->isPluginActiveForNetwork( $plugin );
}
public function isPluginActiveForNetwork( $plugin ) {
if ( !is_multisite() )
return false;
$plugins = get_site_option( 'active_sitewide_plugins');
if ( isset($plugins[$plugin]) )
return true;
return false;
}
public function current_url(){
global $wp;
$current_url = home_url($_SERVER['REQUEST_URI']);
return $current_url;
// if(defined('WP_CLI')){
// $_SERVER["SERVER_NAME"] = isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : "";
// $_SERVER["SERVER_PORT"] = isset($_SERVER["SERVER_PORT"]) ? $_SERVER["SERVER_PORT"] : 80;
// }
// $pageURL = 'http';
// if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){
// $pageURL .= 's';
// }
// $pageURL .= '://';
// if($_SERVER['SERVER_PORT'] != '80'){
// $pageURL .= $_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
// }else{
// $pageURL .= $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
// }
// return $pageURL;
}
public function wpfc_load_plugin_textdomain(){
load_plugin_textdomain('wp-fastest-cache', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
}
public function cdn_replace_urls($matches){
if(count($this->cdn) > 0){
foreach ($this->cdn as $key => $cdn) {
if($cdn->id == "cloudflare"){
continue;
}
if(isset($cdn->status) && $cdn->status == "pause"){
continue;
}
if(preg_match("/manifest\.json\.php/i", $matches[0])){
return $matches[0];
}
//https://site.com?brizy_media=AttachmentName.jpg&brizy_crop=CropSizes&brizy_post=TheCurrentPost
if(preg_match("/brizy_media\=/i", $matches[0])){
return $matches[0];
}
//https://cdn.shortpixel.ai/client/q_glossy,ret_img,w_736/http://wpfc.com/stories.png
if(preg_match("/cdn\.shortpixel\.ai\/client/i", $matches[0])){
return $matches[0];
}
if(preg_match("/^\/\/random/", $cdn->cdnurl) || preg_match("/\/\/i\d\.wp\.com/", $cdn->cdnurl)){
// Photon will no longer be supported
continue;
}
$cdnurl = $cdn->cdnurl;
$cdn->file_types = str_replace(",", "|", $cdn->file_types);
if(preg_match("/\.(".$cdn->file_types.")(\"|\'|\?|\)|\s|\"\;)/i", $matches[0])){
//nothing
}else{
if(preg_match("/js/", $cdn->file_types)){
if(!preg_match("/\/revslider\/public\/assets\/js/", $matches[0])){
continue;
}
}else{
continue;
}
}
if($cdn->keywords){
$cdn->keywords = str_replace(",", "|", $cdn->keywords);
if(!preg_match("/".preg_quote($cdn->keywords, "/")."/i", $matches[0])){
continue;
}
}
if(isset($cdn->excludekeywords) && $cdn->excludekeywords){
$cdn->excludekeywords = str_replace(",", "|", $cdn->excludekeywords);
if(preg_match("/".preg_quote($cdn->excludekeywords, "/")."/i", $matches[0])){
continue;
}
}
if(preg_match("/(data-product_variations|data-siteorigin-parallax)\=[\"\'][^\"\']+[\"\']/i", $matches[0])){
$cdnurl = preg_replace("/(https?\:)?(\/\/)(www\.)?/", "", $cdnurl);
// if(preg_match("/i\d\.wp\.com/i", $cdnurl)){
// $matches[0] = preg_replace("/(quot\;|\s)(https?\:)?(\\\\\/\\\\\/|\/\/)(www\.)?".$cdn->originurl."/i", "$1$2$3".$cdnurl, $matches[0]);
// }else{
// $matches[0] = preg_replace("/(quot\;|\s)(https?\:)?(\\\\\/\\\\\/|\/\/)(www\.)?".$cdn->originurl."/i", "$1$2$3$4".$cdnurl, $matches[0]);
// }
$matches[0] = preg_replace("/(quot\;|\s)(https?\:)?(\\\\\/\\\\\/|\/\/)(www\.)?".$cdn->originurl."/i", '${1}${2}${3}'.$cdnurl, $matches[0]);
}else if(preg_match("/\{\"concatemoji\"\:\"[^\"]+\"\}/i", $matches[0])){
$matches[0] = preg_replace("/(http(s?)\:)?".preg_quote("\/\/", "/")."(www\.)?/i", "", $matches[0]);
$matches[0] = preg_replace("/".preg_quote($cdn->originurl, "/")."/i", $cdnurl, $matches[0]);
}else if(isset($matches[2]) && preg_match("/".preg_quote($cdn->originurl, "/")."/", $matches[2])){
$matches[0] = preg_replace("/(http(s?)\:)?\/\/(www\.)?".preg_quote($cdn->originurl, "/")."/i", $cdnurl, $matches[0]);
}else if(isset($matches[2]) && preg_match("/^(\/?)(wp-includes|wp-content)/", $matches[2])){
$matches[0] = preg_replace("/(\/?)(wp-includes|wp-content)/i", $cdnurl."/"."$2", $matches[0]);
}else if(preg_match("/[\"\']https?\:\\\\\/\\\\\/[^\"\']+[\"\']/i", $matches[0])){
if(preg_match("/^(logo|url|image)$/i", $matches[1])){
//If the url is called with "//", it causes an error on https://search.google.com/structured-data/testing-tool/u/0/
//
//
//
}else{
//
$matches[0] = preg_replace("/\\\\\//", "/", $matches[0]);
if(preg_match("/".preg_quote($cdn->originurl, "/")."/", $matches[0])){
$matches[0] = preg_replace("/(http(s?)\:)?\/\/(www\.)?".preg_quote($cdn->originurl, "/")."/i", $cdnurl, $matches[0]);
$matches[0] = preg_replace("/\//", "\/", $matches[0]);
}
}
}
}
}
return $matches[0];
}
public function read_file($url){
if(!preg_match("/\.php/", $url)){
$url = preg_replace("/\?.*/", "", $url);
if(preg_match("/wp-content/", $url)){
$path = preg_replace("/.+\/wp-content\/(.+)/", WPFC_WP_CONTENT_DIR."/"."$1", $url);
}else if(preg_match("/wp-includes/", $url)){
$path = preg_replace("/.+\/wp-includes\/(.+)/", ABSPATH."wp-includes/"."$1", $url);
}
if(isset($path)){
if(@file_exists($path)){
$filesize = filesize($path);
if($filesize > 0){
$myfile = fopen($path, "r") or die("Unable to open file!");
$data = fread($myfile, $filesize);
fclose($myfile);
return $data;
}else{
return false;
}
}
}
}
return false;
}
public function get_operating_systems(){
$operating_systems = array(
'Android',
'blackberry|\bBB10\b|rim\stablet\sos',
'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
'Windows\sCE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window\sMobile|Windows\sPhone\s[0-9.]+|WCE;',
'Windows\sPhone\s10.0|Windows\sPhone\s8.1|Windows\sPhone\s8.0|Windows\sPhone\sOS|XBLWP7|ZuneWP7|Windows\sNT\s6\.[23]\;\sARM\;',
'\biPhone.*Mobile|\biPod|\biPad',
'Apple-iPhone7C2',
'MeeGo',
'Maemo',
'J2ME\/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
'webOS|hpwOS',
'\bBada\b',
'BREW'
);
return $operating_systems;
}
public function get_mobile_browsers(){
$mobile_browsers = array(
'\bCrMo\b|CriOS|Android.*Chrome\/[.0-9]*\s(Mobile)?',
'\bDolfin\b',
'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+',
'Skyfire',
'Mobile\sSafari\/[.0-9]*\sEdge',
'IEMobile|MSIEMobile', // |Trident/[.0-9]+
'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
'bolt',
'teashark',
'Blazer',
'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
'Tizen',
'UC.*Browser|UCWEB',
'baiduboxapp',
'baidubrowser',
'DiigoBrowser',
'Puffin',
'\bMercury\b',
'Obigo',
'NF-Browser',
'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
'Android.*PaleMoon|Mobile.*PaleMoon'
);
return $mobile_browsers;
}
}
// Load WP CLI command(s) on demand.
if ( defined( 'WP_CLI' ) && WP_CLI ) {
require_once "inc/cli.php";
}
function wpfc_clear_all_site_cache(){
if(defined('WPFC_DISABLE_HOOK_CLEAR_ALL_CACHE') && WPFC_DISABLE_HOOK_CLEAR_ALL_CACHE){
return array("success" => false, "message" => "Clearing Cache Hook system has been disabled");
}
do_action("wpfc_clear_all_cache");
}
function wpfc_clear_all_cache($minified = false){
if(defined('WPFC_DISABLE_HOOK_CLEAR_ALL_CACHE') && WPFC_DISABLE_HOOK_CLEAR_ALL_CACHE){
return array("success" => false, "message" => "Clearing Cache Hook system has been disabled");
}
do_action("wpfc_clear_all_cache", $minified);
}
function wpfc_exclude_current_page(){
do_action("wpfc_exclude_current_page");
}
function wpfc_clear_post_cache_by_id($post_id = false){
if($post_id){
do_action("wpfc_clear_post_cache_by_id", false, $post_id);
}
}
function wpfc_create_post_cache_by_id($post_id = false){
if($post_id){
do_action("wpfc_create_post_cache_by_id", $post_id);
}
}
$GLOBALS["wp_fastest_cache"] = new WpFastestCache();
?>
https://www.datisjammie.nl/
2025-04-07T09:36:03+00:00
https://www.datisjammie.nl/recepten/aardbeiensiroop/
2019-01-31T13:30:19+00:00
https://www.datisjammie.nl/afbeeldingen/Aardbeien-rabarber-siroop-recept-JAMMIE-groot.png
https://www.datisjammie.nl/afbeeldingen/aardbeiensiroop-recept-JAMMIE.png
https://www.datisjammie.nl/afbeeldingen/aardbeiensiroop-recept-JAMMIE-datisjammie.nl_.png
https://www.datisjammie.nl/recepten/saliepesto/
2019-02-13T13:33:39+00:00
https://www.datisjammie.nl/afbeeldingen/salie-saliepesto-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/salie-saliepesto-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/salie-saliepesto-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/spinazie-venkelsalade/
2019-02-20T13:23:30+00:00
https://www.datisjammie.nl/afbeeldingen/spinazie-venkel-salade-recept-de-groene-garde-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/spinazie-venkel-salade-recept-de-groene-garde-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/spinazie-venkel-salade-recept-de-groene-garde-jammie-thumbnail.jpg
https://www.datisjammie.nl/recepten/broodpudding/
2019-02-20T14:27:09+00:00
https://www.datisjammie.nl/afbeeldingen/broodpudding-rozijnen-noten-recept-groot-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/broodpudding-rozijnen-noten-recept-medium-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/broodpudding-rozijnen-noten-recept-thumbnail-JAMMIE.jpg
https://www.datisjammie.nl/recepten/aardbeien-sinaasappel-rode-bessen-smoothie/
2019-02-22T13:35:13+00:00
https://www.datisjammie.nl/afbeeldingen/aardbei-sinaasappel-bes-smoothie-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/aardbei-sinaasappel-bes-smoothie-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/aardbei-sinaasappel-bes-smoothie-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/recepten/broccolisoep-met-verse-marjolein/
2019-02-22T13:51:27+00:00
https://www.datisjammie.nl/afbeeldingen/broccolisoep-marjolein-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/broccolisoep-marjolein-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/broccolisoep-marjolein-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/recepten/pasta-met-lavendel-camembert/
2019-03-21T09:23:23+00:00
https://www.datisjammie.nl/afbeeldingen/zomerse-pasta-lavendel-camembert-Groene-Garde-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/zomerse-pasta-lavendel-camembert-Groene-Garde-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/zomerse-pasta-lavendel-camembert-Groene-Garde-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/sandwich-met-banaan-chocolade-en-hazelnootpasta/
2019-03-26T13:46:28+00:00
https://www.datisjammie.nl/afbeeldingen/sandwich-hazelnootpasta-banaan-chocolade-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/sandwich-hazelnootpasta-banaan-chocolade-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/sandwich-hazelnootpasta-banaan-chocolade-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/appelcompote-met-kaneel/
2019-03-27T12:34:54+00:00
https://www.datisjammie.nl/afbeeldingen/appel-compote-kaneel-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/appel-compote-kaneel-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/appel-compote-kaneel-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/recepten/tropische-rabarbercompote-met-kokosschuim/
2019-03-27T12:50:54+00:00
https://www.datisjammie.nl/afbeeldingen/tropische-rabarbercompote-kokosschuim-groene-garde-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/tropische-rabarbercompote-kokosschuim-groene-garde-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/tropische-rabarbercompote-kokosschuim-groene-garde-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/nieuws/jamboek-hoe-fotografeer-je-heel-veel-potjes/
2019-04-02T12:57:59+00:00
https://www.datisjammie.nl/afbeeldingen/Fotoshoot-jamkookboek-najaar-winter-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Fotoshoot-jamkookboek-styling-Textiel-Dille-Kamille.jpg
https://www.datisjammie.nl/afbeeldingen/Fotoshoot-jamkookboek-najaar-winter-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/nieuws/ik-ga-een-jamboek-schrijven/
2019-04-02T13:19:32+00:00
https://www.datisjammie.nl/afbeeldingen/Janine-schrijft-jamkookboek-Nieuws-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Jamvragen-JAMMIE.png
https://www.datisjammie.nl/afbeeldingen/jamkookboek-recepten-testen-JAMMIE-medium.jpg
https://www.datisjammie.nl/nieuws/proef-eetbaar-utrecht-evenement/
2019-04-17T11:06:40+00:00
https://www.datisjammie.nl/afbeeldingen/foodevenement-proef-eetbaar-utrecht-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevenement-proef-eetbaar-utrecht-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/nieuws/win-streekkrat-streekmolen/
2019-04-23T19:50:14+00:00
https://www.datisjammie.nl/afbeeldingen/winactie-test-streekkrat-streekmolen-streekproducten-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/winactie-test-streekkrat-streekmolen-streekproducten-JAMMIE-medium.jpg
https://www.datisjammie.nl/nieuws/de-springerdagen/
2019-05-07T12:02:16+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-jammie-op-springerdagen-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/jammie-pruimenjam-is-al-op/
2019-05-07T12:34:55+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-jam-pruimenjam-op-2011-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/een-jammie-kerst-voor-jou/
2019-05-07T12:48:10+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-jam-kerstspecial-2011-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/2012-wordt-ontzettend-jammie/
2019-05-07T13:00:11+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-nieuwjaarskaart-2012-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-nieuwjaarskaart-2012-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/rotterdamse-oogstmarkt/
2019-05-07T13:22:26+00:00
https://www.datisjammie.nl/afbeeldingen/rotterdam-oogstmarkt-2012-jammie-nieuws-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rotterdam-oogstmarkt-2012-jammie-nieuws-medium.jpg
https://www.datisjammie.nl/nieuws/workshop-wecken-foodfilmfestival/
2019-05-09T09:23:14+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-Food-Film-Festival-2012-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevent-Food-Film-Festival-2012-Nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/nieuws/workshop-wecken-foodfilmfestival-verslag/
2019-05-09T09:42:56+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-Food-Film-Festival-2012-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/JAMMIE-workshop-wecken-FFF.png
https://www.datisjammie.nl/nieuws/kookboek-de-groene-garde-puha/
2019-05-09T10:44:01+00:00
https://www.datisjammie.nl/afbeeldingen/puha-utrecht-de-groene-garde-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/nieuws/foodfilmfestival-recepten/
2019-05-09T10:51:32+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-Food-Film-Festival-2012-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/nieuws/pinterest/
2019-05-09T13:02:49+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-pinterest-inspiratie-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-pinterest-inspiratie-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/nieuws/jammie-flair/
2019-05-09T13:27:37+00:00
https://www.datisjammie.nl/afbeeldingen/rabarbertoetje-recept-groene-garde-flair-Jammie-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rabarbertoetje-recept-groene-garde-flair-Jammie-Nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/recepten/walnotenpesto/
2019-06-12T18:05:04+00:00
https://www.datisjammie.nl/afbeeldingen/walnoten-pesto-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/walnoten-pesto-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/walnoten-pesto-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/nieuws/peperzaden-planten/
2019-06-26T09:06:35+00:00
https://www.datisjammie.nl/afbeeldingen/rode-peper-kweektips-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rode-peper-kweektips-Nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/rode-peperkweekbak.png
https://www.datisjammie.nl/afbeeldingen/rode-peperplant.png
https://www.datisjammie.nl/afbeeldingen/hottie-sambal-tomaat.png
https://www.datisjammie.nl/nieuws/jammie-joiedevivre/
2019-06-26T09:08:35+00:00
https://www.datisjammie.nl/afbeeldingen/zomerse-pasta-lavendel-camembert-Groene-Garde-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/nieuws/groene-garde-korting/
2019-06-26T09:09:18+00:00
https://www.datisjammie.nl/nieuws/jammiejam-bij-mary-k-hotel/
2019-06-26T09:12:40+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-jam-verkoop-mary-k-hotel-utrecht-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/mary-k-hotel-winkel-jammie-jam.png
https://www.datisjammie.nl/recepten/hummus/
2019-06-26T09:38:17+00:00
https://www.datisjammie.nl/afbeeldingen/hummus-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/hummus-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/hummus-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/rijstsalade-met-winterpostelein/
2019-06-26T10:30:11+00:00
https://www.datisjammie.nl/afbeeldingen/Rijstsalade-winterpostelein-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Rijstsalade-winterpostelein-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Rijstsalade-winterpostelein-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Leestip-datisjammie.png
https://www.datisjammie.nl/recepten/winterposteleinpesto/
2019-06-26T10:32:34+00:00
https://www.datisjammie.nl/afbeeldingen/winterpostelein-winterposteleinpesto-pijnboompitten-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/winterpostelein-winterposteleinpesto-pijnboompitten-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/winterpostelein-winterposteleinpesto-pijnboompitten-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/rabarber-peerjam/
2019-06-26T10:34:23+00:00
https://www.datisjammie.nl/afbeeldingen/rabarber-peer-jam-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rabarber-peerjam-ingredienten-recept-jammie.png
https://www.datisjammie.nl/afbeeldingen/rabarber-peerjam-fruit-recept-jammie.png
https://www.datisjammie.nl/afbeeldingen/rabarber-peerjam-recept-jammie.png
https://www.datisjammie.nl/recepten/hangop/
2019-06-26T10:49:27+00:00
https://www.datisjammie.nl/afbeeldingen/hangop-fruit-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/hangop-fruit-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/hangop-karnemelk-rabarbercompote-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/hangop-fruit-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/nieuws/big-bang-broccoli/
2019-06-26T11:03:30+00:00
https://www.datisjammie.nl/afbeeldingen/foodevenement-big-bang-broccoli-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevenement-big-bang-broccoli-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/big-bang-broccoli-logo.png
https://www.datisjammie.nl/recepten/appelpunch-sinaasappel-en-specerijen/
2019-06-26T12:11:06+00:00
https://www.datisjammie.nl/afbeeldingen/appelpunch-sinaasappel-specerijen-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/appelpunch-sinaasappel-specerijen-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/appelpunch-sinaasappel-specerijen-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/rabarber-aardbeienjam/
2019-06-26T12:13:34+00:00
https://www.datisjammie.nl/afbeeldingen/Aardbei-rabarberjam-jammie-recept.png
https://www.datisjammie.nl/afbeeldingen/rabarberjam-aardbeien-jammie-recept-jamboek.png
https://www.datisjammie.nl/afbeeldingen/rabarber-aardbeienjam-jammie-jamrecept-e1526984227805.png
https://www.datisjammie.nl/nieuws/jammie-is-online/
2019-06-27T13:34:23+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-is-online-nieuws-datisjammie-groot.jpg
https://www.datisjammie.nl/recepten/rabarberjam/
2019-06-30T18:02:39+00:00
https://www.datisjammie.nl/afbeeldingen/rabarber-sinaasappel-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Rabarber-sinaasappel-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Rabarber-sinaasappel-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/perenjam-met-speculaaskruiden/
2019-08-06T12:47:45+00:00
https://www.datisjammie.nl/afbeeldingen/Perenjam-speculaaskruiden-JAMMIE.png
https://www.datisjammie.nl/afbeeldingen/Perenjam-speculaaskruiden-recept-JAMMIE.png
https://www.datisjammie.nl/afbeeldingen/Perenjam-speculaaskruiden-recept-JAMMIE-thumbnail.png
https://www.datisjammie.nl/recepten/kersen-rodebessenjam/
2019-08-07T12:25:30+00:00
https://www.datisjammie.nl/afbeeldingen/Kersen-rode-bessen-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Kersen-rode-bessen-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Kersen-rode-bessen-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/abrikozen-aardbeienjam/
2019-08-07T12:27:10+00:00
https://www.datisjammie.nl/afbeeldingen/abrikozen-aardbeien-jam-JAMMIE-recept-datisjammie.nl_.png
https://www.datisjammie.nl/afbeeldingen/abrikozen-aardbeienjam-JAMMIE-recept-datisjammie.nl_.png
https://www.datisjammie.nl/afbeeldingen/abrikozen-aardbeien-jam-JAMMIE-recept-e1532544255355.png
https://www.datisjammie.nl/recepten/bramen-kersenjam/
2019-09-04T13:19:36+00:00
https://www.datisjammie.nl/afbeeldingen/bramen-kersen-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/bramen-kersen-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/bramen-kersen-jam-recept-JAMMIE-medium-close-up.jpg
https://www.datisjammie.nl/afbeeldingen/bramen-kersen-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/nieuws/4de-druk-kookboek-groene-garde/
2019-10-29T13:42:46+00:00
https://www.datisjammie.nl/afbeeldingen/4de-druk-De-Groene-Garde-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/4de-druk-De-Groene-Garde-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/recepten/perziken-citroen-citroenmelissejam/
2019-11-14T11:24:58+00:00
https://www.datisjammie.nl/afbeeldingen/perziken-citroen-citroenmelisse-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/perziken-citroen-citroenmelisse-jam-recept-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/perziken-citroen-citroenmelisse-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/perzikenjam/
2019-11-14T11:25:05+00:00
https://www.datisjammie.nl/afbeeldingen/perziken-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/perziken-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/perziken-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/blauwebessen-bramenjam/
2019-11-14T11:25:48+00:00
https://www.datisjammie.nl/afbeeldingen/blauwe-bessen-bramen-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/blauwe-bessen-bramen-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/blauwe-bessen-bramen-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/bloedsinaasappeljam/
2019-11-14T16:25:56+00:00
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/kaki-sharonfruit-sinaasappel-jam/
2019-11-14T16:26:54+00:00
https://www.datisjammie.nl/afbeeldingen/kaki-sharonfruit-sinaasappel-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/kaki-sharonfruit-sinaasappel-jam-recept-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/kaki-sharonfruit-sinaasappel-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/pruimen-specerijenjam/
2019-11-15T10:49:12+00:00
https://www.datisjammie.nl/afbeeldingen/pruimen-specerijen-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/pruimen-specerijen-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/pruimen-specerijen-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/tomaten-tarte-tatin-mozzarella-geitenkaas/
2019-11-20T13:49:29+00:00
https://www.datisjammie.nl/afbeeldingen/tomaten-tarte-tatin-mozzarella-groot-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/tomaten-tarte-tatin-mozzarella-medium-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/tomaten-tarte-tatin-mozzarella-thumbnail-JAMMIE.jpg
https://www.datisjammie.nl/nieuws/het-love-lemons-kookboek/
2019-11-21T08:37:23+00:00
https://www.datisjammie.nl/afbeeldingen/Love-and-Lemons-Kookboek-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Love-and-Lemons-Kookboek-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/i-love-groente/
2019-11-21T08:38:06+00:00
https://www.datisjammie.nl/afbeeldingen/I-love-groente-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/I-love-groente-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/dedikkevandam/
2019-11-21T08:40:29+00:00
https://www.datisjammie.nl/afbeeldingen/Dedikkevandam-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Dedikkevandam-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/fermenteren/
2019-11-21T08:46:24+00:00
https://www.datisjammie.nl/afbeeldingen/Fermenteren-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Fermenteren-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/recepten/cheesecake-met-perenjam-en-hazelnootpasta/
2019-11-21T20:10:38+00:00
https://www.datisjammie.nl/afbeeldingen/cheesecake-perenjam-hazelnootpasta-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/cheesecake-perenjam-hazelnootpasta-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/cheesecake-perenjam-hazelnootpasta-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/recepten/cranberry-sinaasappel-kaneel-jam/
2019-12-07T15:27:03+00:00
https://www.datisjammie.nl/afbeeldingen/cranberry-sinaasappel-kaneel-jam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/cranberry-sinaasappel-kaneel-jam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/cranberry-sinaasappel-kaneel-jam-recept-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/cranberry-sinaasappel-kaneel-jam-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/nieuws/minibijbel-inmaken/
2020-01-08T13:36:05+00:00
https://www.datisjammie.nl/afbeeldingen/Minibijbel-inmaken-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Minibijbel-inmaken-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/kookboek-de-groene-garde-rio-de-bio/
2020-02-20T10:57:01+00:00
https://www.datisjammie.nl/afbeeldingen/rio-de-bio-utrecht-de-groene-garde-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/streekproducten/fermentatieworkshops-van-keukenboeren/
2020-03-30T13:30:59+00:00
https://www.datisjammie.nl/afbeeldingen/Fermentatieworkshops-Keukenboeren-RotPot-interview-Sanne-Zwart-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Fermentatieworkshops-Keukenboeren-Sanne-Zwart-Jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Fermentatieworkshops-Keukenboeren-RotPot-interview-Sanne-Zwart-Jammie-medium.jpg
https://www.datisjammie.nl/recepten/pompoen-bloedsinaasappel-gember-jam/
2020-04-19T15:07:23+00:00
https://www.datisjammie.nl/afbeeldingen/pompoen-sinaasappel-gemberjam-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/pompoen-sinaasappel-gemberjam-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/pompoen-sinaasappel-gemberjam-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/rabarbercompote/
2020-06-04T18:52:40+00:00
https://www.datisjammie.nl/afbeeldingen/rabarber-compote-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rabarber-compote-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/rabarber-compote-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/nieuws/wekelijkse-streekmarkt-hilversum/
2020-06-22T19:34:43+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-streekmarkt-gijs-ns-hilversum-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/streekmarkt-gijs-ns-hilversum-nieuws-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/jammie-drie-jaar-en-nog-wat-feestje/
2020-10-25T18:53:11+00:00
https://www.datisjammie.nl/afbeeldingen/Jammie-3-jaar-en-nog-wat-feestje-Nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Flyer-streekweken-2010.png
https://www.datisjammie.nl/afbeeldingen/JAMMIE-JAM-streekweken-2010.png
https://www.datisjammie.nl/afbeeldingen/JAMMIE-Streekweken-2010.png
https://www.datisjammie.nl/afbeeldingen/Puha-1-jaar.png
https://www.datisjammie.nl/afbeeldingen/JAMMIE-De-Springerdagen-2011.png
https://www.datisjammie.nl/afbeeldingen/4de-druk-De-Groene-Garde-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/JAMMIEJAM-Mary-K-Hotel.png
https://www.datisjammie.nl/afbeeldingen/paasontbijttafel-stylingtips-nieuws-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/JAMMIE-krijgt-een-nieuwe-website.png
https://www.datisjammie.nl/afbeeldingen/Verhuiskaart-Janine-Tijmen.png
https://www.datisjammie.nl/streekproducten/hoeksche-wodka/
2020-11-15T14:59:20+00:00
https://www.datisjammie.nl/afbeeldingen/rabarber-wodka-recept-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/kookboek-degroenegarde/
2020-11-15T15:01:15+00:00
https://www.datisjammie.nl/afbeeldingen/4de-druk-De-Groene-Garde-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/4de-druk-De-Groene-Garde-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/nieuws/low-budget-stylingtips-pasen2/
2021-01-01T16:24:49+00:00
https://www.datisjammie.nl/afbeeldingen/paasontbijttafel-stylingtips-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/paasontbijttafel-stylingtips-nieuws-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/lekkerepost-deel1/
2021-06-22T10:49:36+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-receptenkaarten-rabarber-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-receptenkaarten-asperges-nieuws-jammie-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-receptenkaarten-rabarber-nieuws-jammie-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-receptenkaarten-rabarber.png
https://www.datisjammie.nl/streekproducten/potverdorie-jam-chutney/
2021-10-11T10:09:04+00:00
https://www.datisjammie.nl/afbeeldingen/Potverdorie-frambozenjam-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Potverdorie-charlotte-heine-portret-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Potverdorie-frambozen-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Potverdorie-frambozenjam-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/dutch-rhubarb-week/
2021-10-11T10:15:58+00:00
https://www.datisjammie.nl/afbeeldingen/foodevenement-amsterdam-rhubarb-week-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevenement-amsterdam-rhubarb-week-nieuws-Jammie-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/rabarberjam-aardbeien-jammie-recept-jamboek.png
https://www.datisjammie.nl/recepten/rabarberwodka/
2021-12-06T10:21:20+00:00
https://www.datisjammie.nl/afbeeldingen/rabarber-wodka-recept-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/rabarber-wodka-recept-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/rabarber-wodka-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/streekproducten/jammie-test-streekkrat-van-de-streekmolen/
2021-12-06T10:22:36+00:00
https://www.datisjammie.nl/afbeeldingen/winactie-test-streekkrat-streekmolen-streekproducten-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/winactie-test-streekkrat-streekmolen-streekproducten-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/bieten-feta-soep-recept-jammie-medium.jpg
https://www.datisjammie.nl/recepten/granola-met-abrikozen-en-vijgen/
2021-12-06T10:27:12+00:00
https://www.datisjammie.nl/afbeeldingen/granola-abrikozen-vijgen-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/granola-abrikozen-vijgen-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/granola-abrikozen-vijgen-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/streekproducten/tomaat/
2021-12-06T10:38:37+00:00
https://www.datisjammie.nl/afbeeldingen/tomaten-rood-tips-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/tomaten-mix-tips-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/even-je-vis-checken/
2021-12-06T10:39:54+00:00
https://www.datisjammie.nl/afbeeldingen/thisfish-website-trace-vis-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/this-fish-how-it-works.png
https://www.datisjammie.nl/nieuws/zin-in-jammie/
2022-02-18T10:26:20+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-jam-springerdagen-2011-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/appel-kaneeljam-2011-jammie.png
https://www.datisjammie.nl/afbeeldingen/appel-cider-steranijsgelei-2011-jammie.png
https://www.datisjammie.nl/afbeeldingen/peren-vanillejam-2011-jammie.png
https://www.datisjammie.nl/afbeeldingen/peren-rozemarijngelei-2011-jammie.png
https://www.datisjammie.nl/afbeeldingen/pruimen-kardemomjam-2011-jammie.png
https://www.datisjammie.nl/nieuws/good-family-food-event/
2022-02-18T10:27:27+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-the-good-family-food-event-2014-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevent-the-good-family-food-event-2014-nieuws-Jammie-medium-liggend.jpg
https://www.datisjammie.nl/nieuws/omslag-jamboek-klaar-boek-reserveren/
2022-02-18T10:31:10+00:00
https://www.datisjammie.nl/afbeeldingen/Jam-gelei-confituur-kookboek-Janine-Bruinooge-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Jam-gelei-confituur-kookboek-Janine-Bruinooge-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/kookboek-de-groene-garde-hooi/
2022-04-04T09:43:34+00:00
https://www.datisjammie.nl/afbeeldingen/hooi-utrecht-de-groene-garde-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/nieuws/geef-huisgemaakte-jam-voor-sinterklaas-of-kerst/
2022-04-04T09:50:22+00:00
https://www.datisjammie.nl/afbeeldingen/Home-made-jam-cadeau-tips-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Home-made-jam-cadeau-tips-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/aardbeiensiroop-recept-JAMMIE-datisjammie.nl_.png
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/afbeeldingen/Labels-conserven-jam-inspiratie-DIY.jpg
https://www.datisjammie.nl/streekproducten/prelude/
2022-04-04T10:47:20+00:00
https://www.datisjammie.nl/afbeeldingen/prelude-voorkant-Brussel-recensie-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Prelude-voorkant-Sint-Gilles-Brussel-recensie-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/prelude-logo-raam-Sint-Gilles-Brussel-recensie-JAMMIE-gallery.jpg
https://www.datisjammie.nl/afbeeldingen/prelude-menukaart-Sint-Gilles-Brussel-recensie-JAMMIE-gallery.jpg
https://www.datisjammie.nl/afbeeldingen/prelude-soepmenu-Sint-Gilles-Brussel-recensie-JAMMIE-gallery.jpg
https://www.datisjammie.nl/streekproducten/botanische-dranken-van-bloesembar/
2022-06-06T15:31:00+00:00
https://www.datisjammie.nl/afbeeldingen/Bloesembar-Guldenroede-oogsten-Tiengemeten-Maidie-van-den-Bos-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Bloesembar-Guldenroede-oogsten-Tiengemeten-Maidie-van-den-Bos-Jammie-groot.jpg
https://www.datisjammie.nl/recepten/hoe-ontpit-je-kersen/
2022-06-29T14:29:07+00:00
https://www.datisjammie.nl/afbeeldingen/kersen-kersen-ontpitten-tips-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/kersen-kersen-ontpitten-tips-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/tomaten/
2022-07-04T19:19:49+00:00
https://www.datisjammie.nl/afbeeldingen/Tomaten-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Tomaten-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/recepten/abrikozen-rozenjam/
2022-09-16T08:19:29+00:00
https://www.datisjammie.nl/afbeeldingen/abrikozen-rozen-jam-recept-jammie.png
https://www.datisjammie.nl/afbeeldingen/abrikozen-rozen-jam-recept-jammie-datisjammie.nl_.png
https://www.datisjammie.nl/afbeeldingen/abrikozen-rozen-jam-jammie-e1531227390680.png
https://www.datisjammie.nl/recepten/gele-tomatenketchup/
2023-09-18T11:10:17+00:00
https://www.datisjammie.nl/afbeeldingen/gele-tomatenketchup-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/gele-tomatenketchup-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/gele-tomatenketchup-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/nieuws/elke-zondag-heerlijk-taart/
2023-09-18T11:14:11+00:00
https://www.datisjammie.nl/afbeeldingen/Elke-zondag-heerlijk-taart-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Elke-zondag-heerlijk-taart-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/kweepeer-mandarijnenconfituur-taart-recept-jammie-medium-liggend.jpg
https://www.datisjammie.nl/recepten/brownie-met-limburgse-hazelnootpasta/
2023-10-31T12:41:58+00:00
https://www.datisjammie.nl/afbeeldingen/brownie-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/brownie-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/brownie-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/nieuws/vanhavertotgort/
2023-11-01T09:22:15+00:00
https://www.datisjammie.nl/afbeeldingen/Van-haver-tot-gort-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Van-haver-tot-gort-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/Van-haver-tot-gort-boekrecensie-jammie-medium-liggend.jpg
https://www.datisjammie.nl/recepten/wortelpeterseliesoep/
2024-02-08T13:48:58+00:00
https://www.datisjammie.nl/afbeeldingen/wortelpeterseliesoep-winterposteleinpesto-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/wortelpeterseliesoep-winterposteleinpesto-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/wortelpeterseliesoep-winterposteleinpesto-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/recepten/bloedsinaasappelcurd/
2024-02-08T13:50:26+00:00
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-curd-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-curd-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/bloedsinaasappel-curd-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/zoetzure-venkel/
2024-02-08T13:51:08+00:00
https://www.datisjammie.nl/afbeeldingen/zoet-zure-venkel-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/zoet-zure-venkel-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/zoet-zure-venkel-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/nieuws/tips-sinterklaascadeaus-kerstcadeaus-2019/
2024-02-08T14:00:30+00:00
https://www.datisjammie.nl/afbeeldingen/jammie-cadeautips-boekfavorieten-sinterklaas-kerst-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-cadeautips-boekfavorieten-sinterklaas-kerst-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jam-gelei-confituur-cadeautip-jammie.png
https://www.datisjammie.nl/streekproducten/limburgse-hazelnootpasta/
2024-02-08T14:13:08+00:00
https://www.datisjammie.nl/afbeeldingen/jan-frenken-hazelnoten-limburg-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/jan-frenken-hazelnootpasta-limburg-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/nieuws/be-slow-food-evenement-brussel/
2024-02-22T13:28:59+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-be-Slow-Food-Brussel-2014-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevent-be-Slow-Food-Brussel-2014-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/recepten/wentelteefjes/
2024-03-11T10:58:24+00:00
https://www.datisjammie.nl/afbeeldingen/wentelteefjes-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/wentelteefjes-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/wentelteefjes-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/peren-vanilleconfituur/
2024-03-25T11:13:40+00:00
https://www.datisjammie.nl/afbeeldingen/peren-vanille-confituur-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/peren-vanille-confituur-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/peren-vanille-confituur-recept-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/peren-vanille-confituur-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/mandarijnen-vanille-confituur/
2024-03-25T11:15:55+00:00
https://www.datisjammie.nl/afbeeldingen/mandarijnen-vanille-confituur-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/mandarijnen-vanille-confituur-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/mandarijnen-vanille-confituur-recept-JAMMIE-medium-close-up.jpg
https://www.datisjammie.nl/afbeeldingen/mandarijnen-vanille-confituur-recept-JAMMIE-thumbnail-312x461.jpg
https://www.datisjammie.nl/afbeeldingen/Koop-mijn-kookboek-Jam-Gelei-Confituur-janine-bruinooge-datisjammie-e1561550793402.png
https://www.datisjammie.nl/recepten/10-originele-zoetrecepten-sinterklaas/
2024-03-25T11:18:07+00:00
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/appel-compote-kaneel-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/appelpunch-sinaasappel-specerijen-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/broodpudding-rozijnen-noten-recept-thumbnail-JAMMIE.jpg
https://www.datisjammie.nl/afbeeldingen/brownie-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/cheesecake-perenjam-hazelnootpasta-recept-jammie-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/flensjes-boerenjongens-appelcompote-recept-Groene-Garde-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/kaki-sharonfruit-sinaasappel-jam-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/peren-vanille-confituur-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Perenjam-speculaaskruiden-recept-JAMMIE.png
https://www.datisjammie.nl/afbeeldingen/Perenjam-speculaaskruiden-recept-JAMMIE-thumbnail.png
https://www.datisjammie.nl/afbeeldingen/jam-gelei-confituur-cadeautip-jammie.png
https://www.datisjammie.nl/nieuws/de-groene-garde/
2024-09-09T08:11:32+00:00
https://www.datisjammie.nl/afbeeldingen/De-groene-garde-boekrecensie-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/De-groene-garde-boekrecensie-jammie-medium.jpg
https://www.datisjammie.nl/nieuws/kaasdocumentaire-zoekt-vertoningsruimte/
2024-09-24T11:19:50+00:00
https://www.datisjammie.nl/afbeeldingen/foodevent-vertoning-dansen-met-gehoornde-dames-nieuws-Jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/foodevent-vertoning-dansen-met-gehoornde-dames-nieuws-Jammie-medium.jpg
https://www.datisjammie.nl/streekproducten/keurmerken/
2024-09-24T11:32:25+00:00
https://www.datisjammie.nl/afbeeldingen/streekproducten-keurmerken-overzicht-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/streekproducten-keurmerken-overzicht-jammie-groot.jpg
https://www.datisjammie.nl/recepten/appel-peer-kaneel-jam/
2024-12-18T09:36:15+00:00
https://www.datisjammie.nl/afbeeldingen/appel-peer-kaneel-jam-recept-JAMMIE-groot-valeria_aksakova.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-kaneel-jam-recept-JAMMIE-medium-valeria_aksakova.jpg
https://www.datisjammie.nl/afbeeldingen/kaneelstokjes-imaga-by-weinstock-pixabay.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-kaneel-jam-recept-JAMMIE-thumbnail-valeria_aksakova.jpg
https://www.datisjammie.nl/nieuws/leafs/
2024-12-18T09:40:28+00:00
https://www.datisjammie.nl/afbeeldingen/Leafs-boekrecensie-nieuws-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/Leafs-boekrecensie-nieuws-jammie-medium.jpg
https://www.datisjammie.nl/streekproducten/walnoot/
2024-12-18T09:42:37+00:00
https://www.datisjammie.nl/afbeeldingen/walnoten-kopen-plukken-eten-tips-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/walnoten-kopen-plukken-eten-tips-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/walnoten-pesto-recept-jammie-medium.jpg
https://www.datisjammie.nl/recepten/hollandse-crepes-met-boerenjongens-en-appelcompote/
2024-12-18T09:43:14+00:00
https://www.datisjammie.nl/afbeeldingen/flensjes-boerenjongens-appelcompote-recept-Groene-Garde-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/flensjes-boerenjongens-appelcompote-recept-Groene-Garde-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/flensjes-boerenjongens-appelcompote-recept-Groene-Garde-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/recepten/pesto-genovese/
2024-12-18T09:43:37+00:00
https://www.datisjammie.nl/afbeeldingen/pesto-genovese-basilicumpesto-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/pesto-genovese-basilicumpesto-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/pesto-genovese-basilicumpesto-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/afbeeldingen/Leestip-datisjammie.png
https://www.datisjammie.nl/recepten/appel-peren-toffeelollys/
2024-12-18T09:45:25+00:00
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-groot.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-medium-liggend.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-medium.jpg
https://www.datisjammie.nl/afbeeldingen/appel-peer-caramel-lolly-recept-JAMMIE-thumbnail.jpg
https://www.datisjammie.nl/streekproducten/asperges-kopen-koken-eten-telen/
2024-12-18T09:46:25+00:00
https://www.datisjammie.nl/afbeeldingen/witte-asperges-tips-streekproducten-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/witte-asperges-tips-streekproducten-jammie-medium.jpg
https://www.datisjammie.nl/afbeeldingen/jammie-receptenkaarten-asperges-nieuws-jammie-medium-liggend.jpg
https://www.datisjammie.nl/streekproducten/kooptips/
2025-04-07T09:36:03+00:00
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-jammie-groot.jpg
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-jammie-update2014.png
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-supermarkt-jammie.png
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-markt-jammie.png
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-boer-jammie.png
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-supermarkt-jammie.png
https://www.datisjammie.nl/afbeeldingen/streekproducten-kooptips-webshop-jammie.png