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":3692941,"date":"2021-07-12T00:20:05","date_gmt":"2021-07-12T04:20:05","guid":{"rendered":"http:\/\/specpals.com\/html_parser\/ians_download.php?param=news\/C-1-1370628-1"},"modified":"2021-07-12T01:50:17","modified_gmt":"2021-07-12T05:50:17","slug":"this-incredible-journey-will-not-stop-at-20-grand-slams-novak","status":"publish","type":"post","link":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/","title":{"rendered":"This incredible journey will not stop at 20 Grand Slams: Novak"},"content":{"rendered":"

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

London, July 12 (SocialNews.XYZ)<\/strong> Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an \"incredible journey\" and that he would not stop at 20 Grand Slams but aim for as many majors as possible.<\/p>\n

Djokovic defeated Italy's Matteo Berrettini in the final on Sunday to clinch his sixth Wimbledon title and 20th Grand Slam crown overall. By winning the title, the Serb joined Roger Federer and Rafael Nadal, the other two members of the Big Three, as the players with the most number of Grand Slam singles titles in the Open Era.<\/p>\n

\"When I first broke into the Top 10, for three or four years, I lost most of the big matches against these guys (Federer and Nadal) and something shifted at the end of 2010 and the beginning of 2011. The past 10 years have been an incredible journey and it's not stopping here,\" said Nadal during the post-match press conference.<\/p>\n

Djokovic said Wimbledon had a special place in his heart and winning it was always his dream as a child.<\/p>\n

\"Winning Wimbledon was always the biggest dream of mine as a child. I know how special this is and I don't want to take this for granted. I was a seven year old boy in Serbia, constructing a Wimbledon tennis trophy with improvised materials in my bedroom and now I am standing here with six titles. It's incredible.\"<\/p>\n

The Serb was all praise for Federer and Nadal for helping him raise his game over the years.<\/p>\n

\"I have to pay a great tribute to Rafa and Roger as legends of our sport, the two most important players in my career and why I am the player I am today. They made me realise what I needed to improve, mentally, physically and tactically.\"<\/p>\n

Djokovic, who has already clinched his ninth Australian Open crown in February and a second French title last month, will now stake his claim for the calendar-year Grand Slam after earning his sixth trophy at the All England Club.<\/p>\n

Only four men in the sport's history have arrived at the US Open with the season's first three major championships in their bags, and in a couple of months' time the 34-year-old Djokovic will hope to emulate Don Budge (1938) and Rod Laver (1962 and 1969) in winning all four Grand Slam tournaments in a single season.<\/p>\n

\"I could definitely envisage it happening and I will definitely give it a shot,\" said Djokovic. \"I am in great form and I am playing well at the Grand Slams. So let's keep it going.\"<\/p>\n

Source: IANS<\/p>\n","protected":false},"excerpt":{"rendered":"

London, July 12 (SocialNews.XYZ) Serbia’s world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an “incredible journey” and that he would not stop at 20 Grand Slams but…<\/p>\n","protected":false},"author":1,"featured_media":3692965,"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":"This incredible journey will not stop at 20 Grand Slams: Novak\n #GrandSlams #Novak #socialnewsxyz","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[9,79],"tags":[],"better_featured_image":{"id":3692965,"alt_text":"Federer, Nadal lead tributes to Djokovic after 20th Grand Slam win.(photo:Wimbledon)","caption":"Federer, Nadal lead tributes to Djokovic after 20th Grand Slam win.(photo:Wimbledon)","description":"","media_type":"image","media_details":{"width":2000,"height":1334,"file":"2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg","sizes":{"thumbnail":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-150x150c.jpg","width":150,"height":150,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=150%2C150&quality=80&zoom=1&ssl=1"},"medium":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-300x200.jpg","width":300,"height":200,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=300%2C200&quality=80&zoom=1&ssl=1"},"large":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-1024x683.jpg","width":1024,"height":683,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=1024%2C683&quality=80&zoom=1&ssl=1"},"1536x1536":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-1536x1025.jpg","width":1536,"height":1025,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=1536%2C1025&quality=80&zoom=1&ssl=1"},"admin-thumbs":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-100x67.jpg","width":100,"height":67,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=100%2C67&quality=80&zoom=1&ssl=1"},"content-single":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-777x437c.jpg","width":777,"height":437,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=777%2C437&quality=80&zoom=1&ssl=1"},"content-list":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-260x146c.jpg","width":260,"height":146,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=260%2C146&quality=80&zoom=1&ssl=1"},"home-thumbnail":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-360x165c.jpg","width":360,"height":165,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=360%2C165&quality=80&zoom=1&ssl=1"},"cp-thumb-small":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-75x50c.jpg","width":75,"height":50,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=75%2C50&quality=80&zoom=1&ssl=1"},"rpwe-thumbnail":{"file":"55f5fcf84b8380a51cf5e056d4e62c31-45x45c.jpg","width":45,"height":45,"source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?resize=45%2C45&quality=80&zoom=1&ssl=1"}},"image_meta":{"aperture":"0","credit":"IANS","camera":"","caption":"Federer, Nadal lead tributes to Djokovic after 20th Grand Slam win.(photo:Wimbledon)","created_timestamp":"1626084499","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"Federer, Nadal lead tributes to Djokovic after 20th Grand Slam win.(photo:Wimbledon)","orientation":"0","keywords":["Federer, Nadal ,20th Grand Slam win,Wimbledon,"]}},"post":3692941,"source_url":"https:\/\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg"},"jetpack_publicize_connections":[],"yoast_head":"\nThis incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ<\/title>\n<meta name=\"description\" content=\"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - 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\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"This incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ\" \/>\n<meta property=\"og:description\" content=\"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - Social News XYZ\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\" \/>\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=\"2021-07-12T04:20:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-12T05:50:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=2000%2C1334&quality=80&zoom=1&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1334\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gopi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/agk4444\" \/>\n<meta name=\"twitter:site\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gopi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\"},\"author\":{\"name\":\"Gopi\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba\"},\"headline\":\"This incredible journey will not stop at 20 Grand Slams: Novak\",\"datePublished\":\"2021-07-12T04:20:05+00:00\",\"dateModified\":\"2021-07-12T05:50:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\"},\"wordCount\":435,\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"articleSection\":[\"Sports\",\"Tennis\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\",\"url\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\",\"name\":\"This incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#website\"},\"datePublished\":\"2021-07-12T04:20:05+00:00\",\"dateModified\":\"2021-07-12T05:50:17+00:00\",\"description\":\"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - Social News XYZ\",\"breadcrumb\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.socialnews.xyz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sports\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/sports\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tennis\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/sports\/tennis\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"This incredible journey will not stop at 20 Grand Slams: Novak\"}]},{\"@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\/0128fee9d22643f97e445badb789aaba\",\"name\":\"Gopi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g\",\"caption\":\"Gopi\"},\"description\":\"Gopi Adusumilli is a Programmer. He is the editor of SocialNews.XYZ and President of AGK Fire Inc. He enjoys designing websites, developing mobile applications and publishing news articles on current events from various authenticated news sources. When it comes to writing he likes to write about current world politics and Indian Movies. His future plans include developing SocialNews.XYZ into a News website that has no bias or judgment towards any. He can be reached at gopi@socialnews.xyz\",\"sameAs\":[\"https:\/\/www.socialnews.xyz\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/agk4444\"],\"url\":\"https:\/\/www.socialnews.xyz\/author\/gopi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"This incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ","description":"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - 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\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/","og_locale":"en_US","og_type":"article","og_title":"This incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ","og_description":"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - Social News XYZ","og_url":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/","og_site_name":"Social News XYZ","article_publisher":"https:\/\/www.facebook.com\/socialnewsxyz\/","article_published_time":"2021-07-12T04:20:05+00:00","article_modified_time":"2021-07-12T05:50:17+00:00","og_image":[{"width":2000,"height":1334,"url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=2000%2C1334&quality=80&zoom=1&ssl=1","type":"image\/jpeg"}],"author":"Gopi","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/agk4444","twitter_site":"@Social_News_XYZ","twitter_misc":{"Written by":"Gopi","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#article","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/"},"author":{"name":"Gopi","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/0128fee9d22643f97e445badb789aaba"},"headline":"This incredible journey will not stop at 20 Grand Slams: Novak","datePublished":"2021-07-12T04:20:05+00:00","dateModified":"2021-07-12T05:50:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/"},"wordCount":435,"publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"articleSection":["Sports","Tennis"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/","url":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/","name":"This incredible journey will not stop at 20 Grand Slams: Novak - Social News XYZ","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/#website"},"datePublished":"2021-07-12T04:20:05+00:00","dateModified":"2021-07-12T05:50:17+00:00","description":"London, July 12 (SocialNews.XYZ) Serbia's world No. 1 Novak Djokovic said the past 10 years of his tennis career had been an "incredible journey" and that he would not stop at 20 Grand Slams but... - Social News XYZ","breadcrumb":{"@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.socialnews.xyz\/2021\/07\/12\/this-incredible-journey-will-not-stop-at-20-grand-slams-novak\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.socialnews.xyz\/"},{"@type":"ListItem","position":2,"name":"Sports","item":"https:\/\/www.socialnews.xyz\/category\/sports\/"},{"@type":"ListItem","position":3,"name":"Tennis","item":"https:\/\/www.socialnews.xyz\/category\/sports\/tennis\/"},{"@type":"ListItem","position":4,"name":"This incredible journey will not stop at 20 Grand Slams: Novak"}]},{"@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\/0128fee9d22643f97e445badb789aaba","name":"Gopi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a529f8b3731b5abf1f9994aa34434368?s=96&d=mm&r=g","caption":"Gopi"},"description":"Gopi Adusumilli is a Programmer. He is the editor of SocialNews.XYZ and President of AGK Fire Inc. He enjoys designing websites, developing mobile applications and publishing news articles on current events from various authenticated news sources. When it comes to writing he likes to write about current world politics and Indian Movies. His future plans include developing SocialNews.XYZ into a News website that has no bias or judgment towards any. He can be reached at gopi@socialnews.xyz","sameAs":["https:\/\/www.socialnews.xyz","https:\/\/twitter.com\/https:\/\/twitter.com\/agk4444"],"url":"https:\/\/www.socialnews.xyz\/author\/gopi\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2021\/07\/12\/55f5fcf84b8380a51cf5e056d4e62c31.jpg?fit=2000%2C1334&quality=80&zoom=1&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6Nl9c-fuHz","_links":{"self":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/3692941"}],"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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/comments?post=3692941"}],"version-history":[{"count":0,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/3692941\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media\/3692965"}],"wp:attachment":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media?parent=3692941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/categories?post=3692941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/tags?post=3692941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}