From 73725ed2ebd3dc46102fc51e580a25f551393625 Mon Sep 17 00:00:00 2001 From: David Naber Date: Sun, 7 Feb 2016 15:04:33 +0100 Subject: [PATCH] Introduce DuplicatePostFilter #49 --- inc/Import/Filter/DuplicatePostFilter.php | 79 +++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 inc/Import/Filter/DuplicatePostFilter.php diff --git a/inc/Import/Filter/DuplicatePostFilter.php b/inc/Import/Filter/DuplicatePostFilter.php new file mode 100644 index 0000000..17c5679 --- /dev/null +++ b/inc/Import/Filter/DuplicatePostFilter.php @@ -0,0 +1,79 @@ +wp_factory = $wp_factory + ? $wp_factory + : new Common\WpFactory; + } + + /** + * Checks if a post should be imported or not + * + * @param Type\ImportPostInterface $import_post + * + * @return bool + */ + public function post_to_import( Type\ImportPostInterface $import_post ) { + + $query = $this->wp_factory->wp_query( + [ + 'posts_per_page' => 1, + 'post_status' => 'any', + 'post_type' => 'any', + 'meta_key' => $this->meta_key, + 'meta_value' => $import_post->guid(), + 'fields' => 'ids', + 'update_post_meta_cache' => FALSE, + 'update_post_term_cache' => FALSE + ] + ); + + return ! $query->have_posts(); + } + + /** + * @wp-hook w2m_post_imported + * + * @param WP_Post $wp_post + * @param Type\ImportPostInterface $import_post + */ + public function record_post( WP_Post $wp_post, Type\ImportPostInterface $import_post ) { + + update_post_meta( + $wp_post->ID, + $this->meta_key, + $import_post->guid() + ); + } +} \ No newline at end of file