{"id":21610,"date":"2013-01-18T05:24:51","date_gmt":"2013-01-18T05:24:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/mynewsdesk\/"},"modified":"2026-06-09T13:22:08","modified_gmt":"2026-06-09T13:22:08","slug":"mynewsdesk","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/mynewsdesk\/","author":10002000,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"wpMynewsdesk","header_author":"Mansoor Munib","header_description":"","assets_banners_color":"dccabe","last_updated":"2026-06-09 13:22:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/mynewsdesk\/","header_author_uri":"https:\/\/www.dwinteractive.se\/","rating":5,"author_block_rating":0,"active_installs":20,"downloads":3263,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"mansoormunib","date":"2026-06-09 13:22:08"}},"upgrade_notice":{"2.0.0":"<p>Major modernization for WordPress 6.5\u20137.0 and PHP 8.0+. Settings from previous versions (API key, pressroom site, media types) are migrated automatically \u2014 no reconfiguration required.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"2"},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":1446549,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":1162552,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[45018,1248,8027,266319,80],"plugin_category":[43],"plugin_contributors":[84923,89953],"plugin_business_model":[],"class_list":["post-21610","plugin","type-plugin","status-publish","hentry","plugin_tags-mynewsdesk","plugin_tags-news","plugin_tags-press-releases","plugin_tags-pressroom","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-mansoormunib","plugin_contributors-mnddev","plugin_committers-j-falk","plugin_committers-mansoormunib"],"banners":{"banner":"https:\/\/ps.w.org\/mynewsdesk\/assets\/banner-772x250.jpg?rev=1162552","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mynewsdesk\/assets\/icon-128x128.jpg?rev=1446549","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>wpMynewsdesk integrates the Mynewsdesk pressroom API with WordPress. Enter your Mynewsdesk API key in <strong>Settings \u00bb myNewsDesk<\/strong>, place the <code>[mynewsdesk]<\/code> shortcode anywhere on your site, and the plugin fetches and renders your press releases, news, blog posts, events, images, videos, documents and contacts.<\/p>\n\n<p>This plugin is not built by Mynewsdesk and Mynewsdesk does not provide support for it.<\/p>\n\n<p><strong>Highlights<\/strong><\/p>\n\n<ul>\n<li>Modern, object-oriented codebase (PHP 8.0+).<\/li>\n<li>All output is escaped; all input is sanitized.<\/li>\n<li>AJAX requests are protected by WordPress nonces.<\/li>\n<li>HTTP requests use the WordPress HTTP API (<code>wp_remote_get<\/code>) with timeout and user-agent.<\/li>\n<li>XML parsing is hardened against XXE (<code>LIBXML_NONET<\/code>).<\/li>\n<li>Compatible with WordPress 6.5 through 7.0.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>wp-content\/plugins\/<\/code> or install it through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin from the Plugins screen.<\/li>\n<li>Open <strong>Settings \u00bb myNewsDesk<\/strong> and enter your unique Mynewsdesk API key.<\/li>\n<li>Set the pressroom site (country code such as <code>se<\/code> for Sweden or <code>uk<\/code> for the United Kingdom).<\/li>\n<li>Pick a default media type and the media types you want to display.<\/li>\n<li>Add the <code>[mynewsdesk]<\/code> shortcode to a page or post.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20api%20key%3F\"><h3>Where do I get the API key?<\/h3><\/dt>\n<dd><p>Contact the Mynewsdesk team to obtain an API key. See https:\/\/www.mynewsdesk.com\/docs\/webservice_pressroom for details.<\/p><\/dd>\n<dt id=\"why%20am%20i%20seeing%20%22unable%20to%20load%20content%20from%20mynewsdesk%22%3F\"><h3>Why am I seeing \"Unable to load content from Mynewsdesk\"?<\/h3><\/dt>\n<dd><p>The plugin could not reach the Mynewsdesk API or received an invalid XML response. Verify your API key, pressroom site and that outbound HTTPS traffic is allowed from your server.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Rewrote the plugin as a namespaced, single-file OOP class.<\/li>\n<li>Added strict input sanitization and full output escaping across the admin UI, shortcode and AJAX responses.<\/li>\n<li>Added nonce verification (<code>check_ajax_referer<\/code>) to the AJAX endpoint.<\/li>\n<li>Replaced direct <code>DOMDocument::load($url)<\/code> calls with <code>wp_remote_get()<\/code> plus hardened <code>SimpleXML<\/code> parsing (<code>LIBXML_NONET<\/code>).<\/li>\n<li>Switched the API endpoint to HTTPS.<\/li>\n<li>Replaced deprecated <code>screen_icon()<\/code> and <code>WP_PLUGIN_URL<\/code> usage with modern equivalents (<code>plugin_dir_url<\/code>, <code>add_query_arg<\/code>).<\/li>\n<li>Migrated the settings screen to the WordPress Settings API with <code>sanitize_callback<\/code> for each option.<\/li>\n<li>Migrated the AJAX response to <code>wp_send_json_success<\/code> \/ <code>wp_send_json_error<\/code>.<\/li>\n<li>Renamed internal option keys (<code>kkpo_*<\/code> \u2192 <code>mnd_*<\/code>). Existing installs are migrated automatically on activation or first admin load; legacy values are preserved so downgrades remain safe.<\/li>\n<li>Set requirements: WordPress 6.5+, PHP 8.0+.<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Legacy release.<\/li>\n<\/ul>","raw_excerpt":"Embed press releases and other Mynewsdesk pressroom content in WordPress with the [mynewsdesk] shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/21610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=21610"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mansoormunib"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=21610"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=21610"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=21610"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=21610"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=21610"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=21610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}