/* Plugin Name: Duplicate Posts Remover Plugin URI: http://www.optimum7.com/?utm_source=DuplicatePostPlugin Description: This plugin eliminates the selected-duplicated posts and pages from your blog. Version: 3.2.0 Author: Optimum7 Author URI: http://www.optimum7.com/?utm_source=DuplicatePostPlugin Copyright 2011 Optimum7 Inc (email : optimum7@optimum7.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ define('OPT7_PDD_PLUGINPATH', (DIRECTORY_SEPARATOR != '/') ? str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__)) : dirname(__FILE__)); define('OPT7_PDD_PLUGINNAME', 'Duplicate Posts Remover'); define('OPT7_PDD_UTM_SOURCE_CODE', 'DuplicatePostPlugin'); define('OPT7_PDD_PLUGINSUPPORT_PATH', 'http://www.optimum7.com/internet-marketing/content/duplicate-content-googles-penalty-and-a-wordpress-solution.html?utm_source='.OPT7_PDD_UTM_SOURCE_CODE); define('OPT7_PDD_RSS_LINKS',10); define('OPT7_PDD_RSS_URL','http://www.optimum7.com/internet-marketing/feed'); _opt7_duplicate_posts_remover::bootstrap(); /********************************************************************************************************************/ class _opt7_duplicate_posts_remover{ function bootstrap(){ $file = OPT7_PDD_PLUGINPATH . '/' . basename(__FILE__); add_action('admin_menu', array('_opt7_duplicate_posts_remover','add_admin_options')); add_action( 'admin_enqueue_scripts', array('_opt7_duplicate_posts_remover','my_admin_enqueue_scripts')); add_action('wp_ajax_counters_action',array('_opt7_duplicate_posts_remover','setCounters_action_callback')); add_action('wp_ajax_my_action',array('_opt7_duplicate_posts_remover','getData_action_callback')); add_action('wp_ajax_filters_action',array('_opt7_duplicate_posts_remover','getFilters_action_callback')); add_action('wp_ajax_trashfilters_action',array('_opt7_duplicate_posts_remover','getTrashFilters_action_callback')); add_action('wp_ajax_deletePost_action',array('_opt7_duplicate_posts_remover','deletePost_action_callback')); add_action('wp_ajax_restorePost_action',array('_opt7_duplicate_posts_remover','restorePost_action_callback')); } function add_admin_options(){ add_menu_page ('_opt7_duplicate_posts_remover', 'Duplicate Posts', 8, '_opt7_duplicate_posts_remover', array('_opt7_duplicate_posts_remover','_opt7_duplicate_posts_remover_menu'), get_bloginfo('siteurl').'/wp-content/plugins/duplicate-posts-remover/images/icon.gif'); } function _opt7_duplicate_posts_remover_menu(){ require(OPT7_PDD_PLUGINPATH . '/admin/opt7-duplicate-posts-remover-settings.php'); } function my_admin_enqueue_scripts() { if ($_GET['page']=="_opt7_duplicate_posts_remover") wp_enqueue_script('pluginscript', plugins_url('/js/duplicate-post-remover.js', __FILE__), array('jquery')); } //Ajax Calls function setCounters_action_callback() { $limit = 10000; global $wpdb; $args = array('numberposts' => $limit,'post_type' => 'post','post_status' => 'publish'); $all_posts = sizeof(get_posts($args)); $args = array('numberposts' => $limit,'post_type' => 'post','post_status' => 'trash'); $posts_trash = sizeof(get_posts($args)); $args = array('numberposts' => $limit,'post_type' => 'page','post_status' => 'publish'); $all_pages = sizeof(get_posts($args)); $args = array('numberposts' => $limit,'post_type' => 'page','post_status' => 'trash'); $pages_trash = sizeof(get_posts($args)); $query = "SELECT wp_posts.* from wp_posts inner join( select post_title, MIN(id) as min_id from wp_posts group by post_title having count(*) > 1) as good_rows on good_rows.post_title = wp_posts.post_title and good_rows.min_id <> wp_posts.id where 1=1 and wp_posts.post_type ='post' and wp_posts.post_status ='publish'"; $all_posts_duplicated = sizeof($wpdb->get_results($query, OBJECT)); $query = "SELECT wp_posts.* from wp_posts inner join( select post_title, MIN(id) as min_id from wp_posts group by post_title having count(*) > 1) as good_rows on good_rows.post_title = wp_posts.post_title and good_rows.min_id <> wp_posts.id where 1=1 and wp_posts.post_type ='page' and wp_posts.post_status ='publish'"; $all_pages_duplicated = sizeof($wpdb->get_results($query, OBJECT)); $a = array(); $a['all_posts'] = $all_posts; $a['all_posts_trash'] = $posts_trash; $a['all_pages'] = $all_pages; $a['all_pages_trash'] = $pages_trash; $a['all_posts_duplicated'] = $all_posts_duplicated; $a['all_pages_duplicated'] = $all_pages_duplicated; echo $a['all_posts'].','.$a['all_posts_trash'].','.$a['all_pages'].','.$a['all_pages_trash'].','.$a['all_posts_duplicated'].','.$a['all_pages_duplicated'].','; } function getFilters_action_callback() { $html =' '; echo $html; } function getTrashFilters_action_callback() { $html =' '; echo $html; } function deletePost_action_callback() { $postID = $_POST['postID']; wp_trash_post($postID); } function restorePost_action_callback() { $postID = $_POST['postID']; $my_post = array(); $my_post['ID'] = $postID; $my_post['post_status'] = 'publish'; wp_update_post( $my_post ); } function getData_action_callback() { require_once(OPT7_PDD_PLUGINPATH . '/classes/opt7-duplicate-posts-remover-pagination.class.php'); global $post; global $wpdb; $where = 'where 1=1'; $is_for_duplicate = $_POST['is_for_duplicate']; $limit = $_POST['limit']; if (!$limit) $limit=25; $curr_page = $_POST['page']; if (!$curr_page) $curr_page=1; $post_search = $_POST['post_search']; if ($post_search) $where .=" and $wpdb->posts.post_title like '%".$post_search."%'"; $post_type = $_POST['post_type']; if (!$post_type) $post_type='post'; if ($post_type) $where .=" and $wpdb->posts.post_type ='".$post_type."'"; $post_status = $_POST['post_status']; if (!$post_status) $post_status='publish'; if ($post_status) $where .=" and $wpdb->posts.post_status ='".$post_status."'"; if ($is_for_duplicate){ $query = "SELECT $wpdb->posts.* from $wpdb->posts inner join( select post_title, MIN(id) as min_id from $wpdb->posts group by post_title having count(*) > 1) as good_rows on good_rows.post_title = $wpdb->posts.post_title and good_rows.min_id <> $wpdb->posts.id ".$where; } else{ $query ="SELECT $wpdb->posts.* FROM $wpdb->posts ".$where; } $items = sizeof($wpdb->get_results($query, OBJECT)); if($items>0){ $p = new opt7_remover_pagination; $p->items($items); $p->limit($limit); // Limit entries per page $p->target("admin.php?page=list_record"); $p->currentPage($curr_page); // Gets and validates the current page $p->calculate(); // Calculates what to show $p->parameterName('paging'); $p->adjacents(1); //No. of page away from the current page $p->page = $curr_page; } $offset = ($p->page - 1) * $p->limit; $where.=" ORDER BY post_modified DESC LIMIT ".$offset.','.$limit; if ($is_for_duplicate){ $query = "SELECT $wpdb->posts.* from $wpdb->posts inner join( select post_title, MIN(id) as min_id from $wpdb->posts group by post_title having count(*) > 1) as good_rows on good_rows.post_title = $wpdb->posts.post_title and good_rows.min_id <> $wpdb->posts.id ".$where; } else{ $query ="SELECT $wpdb->posts.* FROM $wpdb->posts ".$where; } $items = $wpdb->get_results($query, OBJECT); $html = '
Title | Author | Created | Modified | Status | Type | ![]() |
|
---|---|---|---|---|---|---|---|
".$post->post_title." | ".$user_info->user_firstname." " .$user_info->user_lastname." | ".date('m/d/Y', strtotime($post->post_date))." | ".date('m/d/Y', strtotime($post->post_modified))." | ".$post->post_status." |
".$post->post_type." | ".$post->comment_count." |
Är det inte underbart att se någon riktigt äcklig person på stan? Med hår som inte blivit tvättat sen födseln av fostervattnet och som går runt i mjukisar från mormor förra julen. Släng in din åsikt for fan!
http://bonnebarbie.blogg.se/2011/april/utkast-april-8-2011.html#comment
????
Menar du Britney Spears eller personen i bakgrunden? Om du menar personen i bakgrunden så skulle jag nog gissa på att det är en kvinna. 🙂
Jag syftar inte på personen bakom, hur i hela härligheten ska man kunna veta vem det är?
Nej jag syftar på Britney “transan” Spears… =)
Fin blogg !
Hoppas du ha haft en bra fredag 😀
Tack! 😀
Jo det är varit bra, hur har er fredag varit?
Mänskan har ju pattar, det måste va en kvinna… eller både och… man ser ju inte nedtill 😉
😉
Du får chansa!
Tack för dina fina ord 🙂
Är inte det det gamla popsnöret Britney? Isf gissar jag på kivinna med fruktansvärd musik. Dte är väl fan att hon skall bli populär nu igen just när man trodde hon försvann. Om det nu är Britney
Jo du har rätt i att det är Britney och att hon levererar fruktansvärd musik, dock är hon en transa. (enligt aftonbladet får jag tillägga…)
Va med i Dagens blogg, Vinnare dras ikväll och länkar du mej har du större chans att ta hem det 😉
http://gaylifet.blogg.se/2011/april/dagens-blogg.html#comment
Lycka till!
oki ska försöka…