ng_attempts; $rval = $this->contact_service( 'ping', array( 'args' => $vaultpress_pings ) ); if ( $rval || $ping_attempts >= 3 ) break; if ( !$rval ) usleep(500000); } while ( true ); if ( !$rval ) { if ( $this->get_option( 'connection_error_code' ) !== -8 ) { // Do not save pings when the subscription is inactive. $__vp_recursive_ping_lock = true; $this->ai_ping_insert( serialize( $vaultpress_pings ) ); } } $this->reset_pings(); if ( $close_wpdb ) { $wpdb->__destruct(); unset( $wpdb ); } return $rval; } function resolve_content_dir() { // Take the easy way out if ( defined( 'WP_CONTENT_DIR' ) ) { if ( substr( WP_CONTENT_DIR, -1 ) != DIRECTORY_SEPARATOR ) return WP_CONTENT_DIR . DIRECTORY_SEPARATOR; return WP_CONTENT_DIR; } // Best guess if ( defined( 'ABSPATH' ) ) { if ( substr( ABSPATH, -1 ) != DIRECTORY_SEPARATOR ) return ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR; return ABSPATH . 'wp-content' . DIRECTORY_SEPARATOR; } // Run with a solid assumption: WP_CONTENT_DIR/vaultpress/vaultpress.php return dirname( __DIR__ ) . DIRECTORY_SEPARATOR; } function resolve_upload_path() { $upload_path = false; $upload_dir = wp_upload_dir(); if ( isset( $upload_dir['basedir'] ) ) $upload_path = $upload_dir['basedir']; // Nothing recorded? use a best guess! if ( !$upload_path || $upload_path == realpath( ABSPATH ) ) return $this->resolve_content_dir() . 'uploads' . DIRECTORY_SEPARATOR; if ( substr( $upload_path, -1 ) != DIRECTORY_SEPARATOR ) $upload_path .= DIRECTORY_SEPARATOR; return $upload_path; } function load_first( $value ) { $value = array_unique( $value ); // just in case there are duplicates return array_merge( preg_grep( '/vaultpress\.php$/', $value ), preg_grep( '/vaultpress\.php$/', $value, PREG_GREP_INVERT ) ); } function is_multisite() { if ( function_exists( 'is_multisite' ) ) return is_multisite(); return false; } function is_main_site() { if ( !function_exists( 'is_main_site' ) || !$this->is_multisite() ) return true; return is_main_site(); } function is_registered() { $key = $this->get_option( 'key' ); $secret = $this->get_option( 'secret' ); return !empty( $key ) && !empty( $secret ); } function clear_connection() { $this->delete_option( 'connection' ); $this->delete_option( 'connection_error_code' ); $this->delete_option( 'connection_error_message' ); $this->delete_option( 'connection_test' ); } function site_url() { $site_url = ''; // compatibility for WordPress MU Domain Mapping plugin if ( defined( 'DOMAIN_MAPPING' ) && DOMAIN_MAPPING && ! function_exists( 'domain_mapping_siteurl' ) ) { if ( !function_exists( 'is_plugin_active' ) ) require_once ABSPATH . '/wp-admin/includes/plugin.php'; $plugin = 'wordpress-mu-domain-mapping/domain_mapping.php'; if ( is_plugin_active( $plugin ) ) include_once( WP_PLUGIN_DIR . '/' . $plugin ); } if ( function_exists( 'domain_mapping_siteurl' ) ) $site_url = domain_mapping_siteurl( false ); if ( empty( $site_url ) ) $site_url = site_url(); return $site_url; } /** * Sync the VaultPress options to WordPress.com if the Jetpack plugin is active. */ function sync_jetpack_options() { if ( class_exists( 'Jetpack_Sync' ) && method_exists( 'Jetpack_Sync', 'sync_options' ) && defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '4.1', '<' ) ) { Jetpack_Sync::sync_options( __FILE__, $this->auto_register_option, $this->option_name ); } } /** * Add the VaultPress options to the Jetpack options management whitelist. * Allows Jetpack to register VaultPress options automatically. * * @param array $options The list of whitelisted option names. * * @return array The updated whitelist */ function add_to_jetpack_options_whitelist( $options ) { $options[] = $this->option_name; $options[] = $this->auto_register_option; return $options; } /** * When the VaultPress auto-register option is updated, run the registration call. * * This should only be run when the option is updated from the Jetpack/WP.com * API call, and only if the new key is different than the old key. * * @param mixed $old_value The old option value, or the option name (if add_option). * @param mixed $value The new option value. */ function updated_auto_register_option( $old_value, $value ) { // Not an API call or CLI call if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) && ! ( defined( 'WP_CLI' ) && WP_CLI ) ) { return; } remove_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ) ); $defaults = array( 'key' => false, 'action' => 'register', // or `response` 'status' => 'working', 'error' => false, ); // `wp_parse_args` uses arrays, might as well be explicit about it. $registration = (array) json_decode( $value ); $registration = wp_parse_args( $registration, $defaults ); // If we have a working connection, don't update the key. if ( $this->check_connection( true ) ) { $registration['action'] = 'response'; $registration['error'] = 'VaultPress is already registered on this site.'; update_option( $this->auto_register_option, json_encode( $registration ) ); return; } if ( ! $registration['key'] ) { return; } $registration['action'] = 'response'; $response = $this->register( $registration['key'] ); if ( is_wp_error( $response ) ) { $registration['status'] = 'broken'; $registration['error'] = $response->get_error_message(); } else if ( $this->get_option( 'connection_error_code' ) ) { $registration['status'] = 'broken'; $registration['error'] = $this->get_option( 'connection_error_message' ); } else { $registration['error'] = false; } update_option( $this->auto_register_option, json_encode( $registration ) ); } function add_global_actions_and_filters() { add_action( 'init', array( $this, 'sync_jetpack_options' ), 0, 99 ); add_filter( 'jetpack_options_whitelist', array( $this, 'add_to_jetpack_options_whitelist' ) ); add_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( "add_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( 'admin_enqueue_scripts', array( $this, 'styles' ) ); } function add_admin_actions_and_filters() { add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. add_action( 'admin_head', array( $this, 'admin_head' ) ); } function add_listener_actions_and_filters() { add_action( 'admin_bar_menu', array( $this, 'toolbar' ), 999 ); // Comments add_action( 'delete_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_set_comment_status', array( $this, 'comment_action_handler' ) ); add_action( 'trashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'untrashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_insert_comment', array( $this, 'comment_action_handler' ) ); add_action( 'comment_post', array( $this, 'comment_action_handler' ) ); add_action( 'edit_comment', array( $this, 'comment_action_handler' ) ); // Commentmeta add_action( 'added_comment_meta', array( $this, 'commentmeta_insert_handler' ), 10, 2 ); add_action( 'updated_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); // Users if ( $this->is_main_site() ) { add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'password_reset', array( $this, 'userid_action_handler' ) ); add_action( 'profile_update', array( $this, 'userid_action_handler' ) ); add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'deleted_user', array( $this, 'userid_action_handler' ) ); } // Usermeta if ( $this->is_main_site() ) { // Keeping these action hooks for backward compatibility add_action( 'added_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'added_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); } // Posts add_action( 'delete_post', array( $this, 'post_action_handler' ) ); add_action( 'trash_post', array( $this, 'post_action_handler' ) ); add_action( 'untrash_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_post', array( $this, 'post_action_handler' ) ); add_action( 'save_post', array( $this, 'post_action_handler' ) ); add_action( 'wp_insert_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_attachment', array( $this, 'post_action_handler' ) ); add_action( 'add_attachment', array( $this, 'post_action_handler' ) ); add_action( 'delete_attachment', array( $this, 'post_action_handler' ) ); add_action( 'private_to_publish', array( $this, 'post_action_handler' ) ); add_action( 'wp_restore_post_revision', array( $this, 'post_action_handler' ) ); // Postmeta add_action( 'added_post_meta', array( $this, 'postmeta_insert_handler' ), 10, 4 ); add_action( 'update_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'updated_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'delete_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'added_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'update_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'delete_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); // Links add_action( 'edit_link', array( $this, 'link_action_handler' ) ); add_action( 'add_link', array( $this, 'link_action_handler' ) ); add_action( 'delete_link', array( $this, 'link_action_handler' ) ); // Taxonomy add_action( 'created_term', array( $this, 'term_handler' ), 2 ); add_action( 'edited_terms', array( $this, 'term_handler' ), 2 ); add_action( 'delete_term', array( $this, 'term_handler' ), 2 ); add_action( 'edit_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'delete_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'edit_term_taxonomies', array( $this, 'term_taxonomies_handler' ) ); add_action( 'add_term_relationship', array( $this, 'term_relationship_handler' ), 10, 2 ); add_action( 'delete_term_relationships', array( $this, 'term_relationships_handler' ), 10, 2 ); add_action( 'set_object_terms', array( $this, 'set_object_terms_handler' ), 10, 3 ); // Files if ( $this->is_main_site() ) { add_action( 'switch_theme', array( $this, 'theme_action_handler' ) ); add_action( 'activate_plugin', array( $this, 'plugin_action_handler' ) ); add_action( 'deactivate_plugin', array( $this, 'plugin_action_handler' ) ); } add_action( 'wp_handle_upload', array( $this, 'upload_handler' ) ); // Options add_action( 'deleted_option', array( $this, 'option_handler' ), 1 ); add_action( 'updated_option', array( $this, 'option_handler' ), 1 ); add_action( 'added_option', array( $this, 'option_handler' ), 1 ); $this->add_woocommerce_actions(); $this->add_vp_required_filters(); } function add_woocommerce_actions() { add_action( 'woocommerce_tax_rate_deleted', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_updated', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_added', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_new_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_update_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_delete_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'added_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'updated_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'deleted_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_added', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_updated', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_deleted', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); } function add_vp_required_filters() { // Log ins if ( $this->get_option( 'login_lockdown' ) ) { add_action( 'login_form', array( $this, 'add_js_token' ) ); add_filter( 'authenticate', array( $this, 'authenticate' ), 999 ); } // Report back to VaultPress add_action( 'shutdown', array( $this, 'do_pings' ) ); // VaultPress likes being first in line add_filter( 'pre_update_option_active_plugins', array( $this, 'load_first' ) ); } function get_jetpack_email() { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) ); $xml->query( 'wpcom.getUserEmail' ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function get_key_via_jetpack( $already_purchased = false ) { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => Jetpack_Options::get_option( 'master_user' ) ) ); $xml->query( 'vaultpress.registerSite', $already_purchased ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function register_via_jetpack( $already_purchased = false ) { $registration_key = $this->get_key_via_jetpack( $already_purchased ); if ( is_wp_error( $registration_key ) ) { return $registration_key; } return self::register( $registration_key ); } } $vaultpress = VaultPress::init(); if ( isset( $_GET['vaultpress'] ) && $_GET['vaultpress'] ) { if ( !function_exists( 'wp_magic_quotes' ) ) { // Escape with wpdb. $_GET = add_magic_quotes( $_GET ); $_POST = add_magic_quotes( $_POST ); $_COOKIE = add_magic_quotes( $_COOKIE ); $_SERVER = add_magic_quotes( $_SERVER ); // Force REQUEST to be GET + POST. If SERVER, COOKIE, or ENV are needed, use those superglobals directly. $_REQUEST = array_merge( $_GET, $_POST ); } else { wp_magic_quotes(); } if ( !function_exists( 'wp_get_current_user' ) ) include ABSPATH . '/wp-includes/pluggable.php'; // TODO: this prevents some error notices but do we need it? is there a better way to check capabilities/logged in user/etc? if ( function_exists( 'wp_cookie_constants' ) && !defined( 'AUTH_COOKIE' ) ) wp_cookie_constants(); $vaultpress->parse_request( null ); die(); } // only load hotfixes if it's not a VP request require_once __DIR__ . '/class.vaultpress-hotfixes.php'; $hotfixes = new VaultPress_Hotfixes(); // Add a helper method to WP CLI for auto-registerion via Jetpack if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once __DIR__ . '/class.vaultpress-cli.php'; } require_once __DIR__ . '/cron-tasks.php'; {"id":816145,"date":"2017-06-27T07:32:07","date_gmt":"2017-06-27T11:32:07","guid":{"rendered":"http:\/\/specpals.com\/html_parser\/ians_download.php?param=news\/C-1-914878"},"modified":"2017-06-27T14:33:38","modified_gmt":"2017-06-27T18:33:38","slug":"smith-advises-struggling-de-villiers-to-quit-odi-captaincy","status":"publish","type":"post","link":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/","title":{"rendered":"Smith advises struggling de Villiers to quit ODI captaincy"},"content":{"rendered":"

\"Smith<\/a><\/p>\n

Johannesburg, June 27 (IANS)<\/strong> Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on his batting.<\/p>\n

Smith, in an article for a British daily, revealed that de Villiers was looking to walk away from Test cricket last year itself but was persuaded by Cricket South Africa (CSA) officials to stay on while offering a break of one year.<\/p>\n

\"It's my belief that AB was looking to walk away from Tests last year at some point, but has been encouraged to carry on by CSA,\" Smith wrote in a column for Britain's Independent newspaper.<\/p>\n

\"His personal prerogative is ensuring he does all he can to add as much longevity to his international career as possible, as well as taking into account the harsh realities of touring such as the amount of travel involved, and the toll that takes on your body.<\/p>\n

\"AB is due to assess his future with CSA later this summer, and my advice to him would be to step away from the captaincy, and concentrate his energy in to maintaining his levels in white-ball cricket for the next two years,\" Smith added.<\/p>\n

de Villiers has not played Tests since sustaining an elbow injury in the series against Australia last year.<\/p>\n

He was appointed South Africa's Test captain in 2016 after Hashim Amla resigned from the post but he held the post for just an year before resigning in December last year and handed over the reins to Faf Du Plessis.<\/p>\n

\"Put simply, if that is what's best for him and the longevity of his career, then that is what's best for South African cricket,\" Smith wrote.<\/p>\n

\"Those criticising AB, and this decision in particular, need to ask themselves whether they would rather de Villiers played in the upcoming (Test) series and walked away from international cricket in a year, or have the opportunity to see him go on and play for his country at another big ICC tournament.\"<\/p>\n

de Villiers has been heavily criticised in the last six months for 'picking and choosing' the matches that he wants to play with some questioning his commitment to South Africa.<\/p>\n

This was because the flamboyant batsman opted to sit out of the England Test series even after he had acquired full fitness.<\/p>\n

Ashwell Prince, the former South African cricketer, took a sly dig at de Villiers and CSA after South Africa's humiliating loss to India in the Champions Trophy by saying that it should be the CSA who should decide who will get the honour to represent the country and not the other way around.<\/p>\n

\"AB has already made huge sacrifices for South African cricket, over such a long period of time, and with the next ICC World Cup just two years away, it's likely that he is targeting that tournament as a swansong to his already illustrious career at the top level.\"<\/p>\n

\"What has AB de Villiers got to prove to anyone? He's a star, and those players are often expected to be available all of the time no matter what the consequences might be personally,\" Smith wrote.<\/p>\n

de Villiers has time and again reasserted his ambition to win an ICC Trophy and has repeatedly gone on record to say that he is targeting the 2019 World Cup as his swansong, considering his young family which will see a new addition soon and his burgeoning injuries in recent years.<\/p>\n","protected":false},"excerpt":{"rendered":"

Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on…<\/p>\n","protected":false},"author":2,"featured_media":795957,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"#Smith #advises #struggling #de #Villiers to #quit #ODI #captaincy\n #socialnews","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[39,9],"tags":[],"better_featured_image":{"id":795957,"alt_text":"South African captain Graeme Smith walks back to the pavilion after being run out on the 4th day of 1st Test match between India and South Africa at Wanderers in Johannesburg on Dec. 21, 2013. (Photo: IANS)","caption":"South African captain Graeme Smith walks back to the pavilion after being run out on the 4th day of 1st Test match between India and South Africa at Wanderers in Johannesburg on Dec. 21, 2013. (Photo: IANS)","description":"","media_type":"image","media_details":{"width":2300,"height":3392,"file":"2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg","sizes":{"thumbnail":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-150x150.jpg","width":150,"height":150,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=150%2C150&quality=80&zoom=1&ssl=1"},"medium":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-203x300.jpg","width":203,"height":300,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=203%2C300&quality=80&zoom=1&ssl=1"},"large":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-694x1024.jpg","width":694,"height":1024,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=694%2C1024&quality=80&zoom=1&ssl=1"},"admin-thumbs":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-68x100.jpg","width":68,"height":100,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=68%2C100&quality=80&zoom=1&ssl=1"},"content-single":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-777x437.jpg","width":777,"height":437,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=777%2C437&quality=80&zoom=1&ssl=1"},"content-list":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-260x146.jpg","width":260,"height":146,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=260%2C146&quality=80&zoom=1&ssl=1"},"home-thumbnail":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-360x165.jpg","width":360,"height":165,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=360%2C165&quality=80&zoom=1&ssl=1"},"cp-thumb-small":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-75x50.jpg","width":75,"height":50,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=75%2C50&quality=80&zoom=1&ssl=1"},"rpwe-thumbnail":{"file":"3a4a8b6be9335303b650e2f5c0ccb966-45x45.jpg","width":45,"height":45,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?resize=45%2C45&quality=80&zoom=1&ssl=1"}},"image_meta":{"aperture":"0","credit":"IANS","camera":"","caption":"South African captain Graeme Smith walks back to the pavilion after being run out on the 4th day of 1st Test match between India and South Africa at Wanderers in Johannesburg on Dec. 21, 2013. (Photo: IANS)","created_timestamp":"1387659622","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"South African captain Graeme Smith walks back to the pavilion after being run out on the 4th day of 1st Test match between India and South Africa at Wanderers in Johannesburg on Dec. 21, 2013. (Photo: IANS)","orientation":"0","keywords":["Johannesburg: First Test Match between India and South - Day-4 (Batch- 6)"]}},"post":795079,"source_url":"https:\/\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg"},"jetpack_publicize_connections":[],"yoast_head":"\nSmith advises struggling de Villiers to quit ODI captaincy - Social News XYZ<\/title>\n<meta name=\"description\" content=\"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Smith advises struggling de Villiers to quit ODI captaincy - Social News XYZ\" \/>\n<meta property=\"og:description\" content=\"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\" \/>\n<meta property=\"og:site_name\" content=\"Social News XYZ\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/socialnewsxyz\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-27T11:32:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-06-27T18:33:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=2300%2C3392&quality=80&zoom=1&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2300\" \/>\n\t<meta property=\"og:image:height\" content=\"3392\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Doraiah Vundavally\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:site\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Doraiah Vundavally\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\"},\"author\":{\"name\":\"Doraiah Vundavally\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/f1432842f5207be3ea6f70c6d4ea2640\"},\"headline\":\"Smith advises struggling de Villiers to quit ODI captaincy\",\"datePublished\":\"2017-06-27T11:32:07+00:00\",\"dateModified\":\"2017-06-27T18:33:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\"},\"wordCount\":587,\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"articleSection\":[\"Cricket\",\"Sports\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\",\"url\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\",\"name\":\"Smith advises struggling de Villiers to quit ODI captaincy - Social News XYZ\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#website\"},\"datePublished\":\"2017-06-27T11:32:07+00:00\",\"dateModified\":\"2017-06-27T18:33:38+00:00\",\"description\":\"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ\",\"breadcrumb\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.socialnews.xyz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cricket\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/cricket\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Smith advises struggling de Villiers to quit ODI captaincy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.socialnews.xyz\/#website\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"name\":\"Social News XYZ\",\"description\":\"The Millennial Media\",\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.socialnews.xyz\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\",\"name\":\"AGK FIRE INC (DBA: Social News XYZ)\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"AGK FIRE INC (DBA: Social News XYZ)\"},\"image\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/socialnewsxyz\/\",\"https:\/\/twitter.com\/Social_News_XYZ\",\"https:\/\/www.instagram.com\/socialnewsxyz\/\",\"https:\/\/www.linkedin.com\/company\/socialnewsxyz\/\",\"https:\/\/www.pinterest.com\/socialnewsxyz\/\",\"https:\/\/www.youtube.com\/socialnewsxyz\/\",\"https:\/\/flipboard.com\/@SocialNewsXYZ\",\"https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/f1432842f5207be3ea6f70c6d4ea2640\",\"name\":\"Doraiah Vundavally\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d149a12f5cc3c9d644da4af832384e0d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d149a12f5cc3c9d644da4af832384e0d?s=96&d=mm&r=g\",\"caption\":\"Doraiah Vundavally\"},\"description\":\"Doraiah Chowdary Vundavally is a Software engineer at VTech . He is the news editor of SocialNews.XYZ and Freelance writer-contributes Telugu and English Columns on Films, Politics, and Gossips. He is the primary contributor for South Cinema Section of SocialNews.XYZ. His mission is to help to develop SocialNews.XYZ into a News website that has no bias or judgement towards any.\",\"sameAs\":[\"https:\/\/www.socialnews.xyz\"],\"url\":\"https:\/\/www.socialnews.xyz\/author\/vdc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Smith advises struggling de Villiers to quit ODI captaincy - Social News XYZ","description":"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/","og_locale":"en_US","og_type":"article","og_title":"Smith advises struggling de Villiers to quit ODI captaincy - Social News XYZ","og_description":"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ","og_url":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/","og_site_name":"Social News XYZ","article_publisher":"https:\/\/www.facebook.com\/socialnewsxyz\/","article_published_time":"2017-06-27T11:32:07+00:00","article_modified_time":"2017-06-27T18:33:38+00:00","og_image":[{"width":2300,"height":3392,"url":"https:\/\/i2.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=2300%2C3392&quality=80&zoom=1&ssl=1","type":"image\/jpeg"}],"author":"Doraiah Vundavally","twitter_card":"summary_large_image","twitter_creator":"@Social_News_XYZ","twitter_site":"@Social_News_XYZ","twitter_misc":{"Written by":"Doraiah Vundavally","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#article","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/"},"author":{"name":"Doraiah Vundavally","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/f1432842f5207be3ea6f70c6d4ea2640"},"headline":"Smith advises struggling de Villiers to quit ODI captaincy","datePublished":"2017-06-27T11:32:07+00:00","dateModified":"2017-06-27T18:33:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/"},"wordCount":587,"publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"articleSection":["Cricket","Sports"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/","url":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/","name":"Smith advises struggling de Villiers to quit ODI captaincy - Social News XYZ","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/#website"},"datePublished":"2017-06-27T11:32:07+00:00","dateModified":"2017-06-27T18:33:38+00:00","description":"Johannesburg, June 27 (IANS) Former South Africa skipper Graeme Smith has advised a struggling AB De Villiers to focus on limited overs cricket and give up the One-day International (ODI) captaincy to fully concentrate on... - Social News XYZ","breadcrumb":{"@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.socialnews.xyz\/2017\/06\/27\/smith-advises-struggling-de-villiers-to-quit-odi-captaincy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.socialnews.xyz\/"},{"@type":"ListItem","position":2,"name":"Cricket","item":"https:\/\/www.socialnews.xyz\/category\/cricket\/"},{"@type":"ListItem","position":3,"name":"Smith advises struggling de Villiers to quit ODI captaincy"}]},{"@type":"WebSite","@id":"https:\/\/www.socialnews.xyz\/#website","url":"https:\/\/www.socialnews.xyz\/","name":"Social News XYZ","description":"The Millennial Media","publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.socialnews.xyz\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.socialnews.xyz\/#organization","name":"AGK FIRE INC (DBA: Social News XYZ)","url":"https:\/\/www.socialnews.xyz\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","width":512,"height":512,"caption":"AGK FIRE INC (DBA: Social News XYZ)"},"image":{"@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/socialnewsxyz\/","https:\/\/twitter.com\/Social_News_XYZ","https:\/\/www.instagram.com\/socialnewsxyz\/","https:\/\/www.linkedin.com\/company\/socialnewsxyz\/","https:\/\/www.pinterest.com\/socialnewsxyz\/","https:\/\/www.youtube.com\/socialnewsxyz\/","https:\/\/flipboard.com\/@SocialNewsXYZ","https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3"]},{"@type":"Person","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/f1432842f5207be3ea6f70c6d4ea2640","name":"Doraiah Vundavally","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d149a12f5cc3c9d644da4af832384e0d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d149a12f5cc3c9d644da4af832384e0d?s=96&d=mm&r=g","caption":"Doraiah Vundavally"},"description":"Doraiah Chowdary Vundavally is a Software engineer at VTech . He is the news editor of SocialNews.XYZ and Freelance writer-contributes Telugu and English Columns on Films, Politics, and Gossips. He is the primary contributor for South Cinema Section of SocialNews.XYZ. His mission is to help to develop SocialNews.XYZ into a News website that has no bias or judgement towards any.","sameAs":["https:\/\/www.socialnews.xyz"],"url":"https:\/\/www.socialnews.xyz\/author\/vdc\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2017\/06\/12\/3a4a8b6be9335303b650e2f5c0ccb966.jpg?fit=2300%2C3392&quality=80&zoom=1&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6Nl9c-3qjD","_links":{"self":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/816145"}],"collection":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/comments?post=816145"}],"version-history":[{"count":0,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/816145\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media\/795957"}],"wp:attachment":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media?parent=816145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/categories?post=816145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/tags?post=816145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}