{"id":3610,"date":"2025-02-15T15:09:04","date_gmt":"2025-02-15T15:09:04","guid":{"rendered":"https:\/\/s-o-s.net\/plugin-check-pcp\/"},"modified":"2025-02-15T15:09:04","modified_gmt":"2025-02-15T15:09:04","slug":"plugin-check-pcp","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/plugin-check-pcp\/","title":{"rendered":"Plugin Check (PCP)"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-46390\" class=\"alignwide post-46390 plugin type-plugin status-publish hentry plugin_tags-accessibility plugin_tags-performance plugin_tags-plugin-best-practices plugin_tags-security plugin_tags-testing plugin_category-customization plugin_category-media plugin_category-utilities-and-tools plugin_contributors-wordpressdotorg plugin_business_model-community plugin_committers-bordoni plugin_committers-davidperez plugin_committers-githubsync plugin_committers-otto42 plugin_committers-performanceteam plugin_committers-pross plugin_committers-tellyworth plugin_support_reps-davidperez\">\n<div class=\"plugin-banner\" id=\"plugin-banner-plugin-check\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" src=\"https:\/\/ps.w.org\/plugin-check\/assets\/icon.svg?rev=3166100\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">Plugin Check (PCP)<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/wordpressdotorg\/\" rel=\"noopener\">WordPress.org<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/plugin-check.1.4.0.zip\" rel=\"noopener\">Download<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/plugin-check\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<p>Plugin Check is a tool for testing whether your plugin meets the required standards for the WordPress.org plugin directory. With this plugin you will be able to run most of the checks used for new submissions, and check if your plugin meets the requirements.<\/p>\n<p>Additionally, the tool flags violations or concerns around plugin development best practices, from basic requirements like correct usage of internationalization functions to accessibility, performance, and security best practices.<\/p>\n<p>The checks can be run either using the WP Admin user interface or WP-CLI:<\/p>\n<ul>\n<li>To check a plugin using WP Admin, please navigate to the <em>Tools &gt; Plugin Check<\/em> menu. You need to be able to manage plugins on your site in order to access that screen.<\/li>\n<li>To check a plugin using WP-CLI, please use the <code>wp plugin check<\/code> command. For example, to check the \u201cHello Dolly\u201d plugin: <code>wp plugin check hello.php<\/code>\n<ul>\n<li>Note that by default when using WP-CLI, only static checks can be executed. In order to also include runtime checks, a workaround is currently necessary using the <code>--require<\/code> argument of WP-CLI, to manually load the <code>cli.php<\/code> file within the plugin checker directory before WordPress is loaded. For example: <code>wp plugin check hello.php --require=.\/wp-content\/plugins\/plugin-check\/cli.php<\/code><\/li>\n<li>You could use arbitrary path or URL to check a plugin. For example, to check a plugin from a URL: <code>wp plugin check https:\/\/example.com\/plugin.zip<\/code> or to check a plugin from a path: <code>wp plugin check \/path\/to\/plugin<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The checks are grouped into several categories, so that you can customize which kinds of checks you would like to run on a plugin.<\/p>\n<p>Keep in mind that this plugin is not a replacement for the manual review process, but it will help you speed up the process of getting your plugin approved for the WordPress.org plugin repository, and it will also help you avoid some common mistakes.<\/p>\n<p>Even if you do not intend to host your plugin in the WordPress.org directory, you are encouraged to use Plugin Check so that your plugin follows the base requirements and best practices for WordPress plugins.<\/p>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<h4>Installation from within WordPress<\/h4>\n<ol>\n<li>Visit <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Search for <strong>Plugin Check<\/strong>.<\/li>\n<li>Install and activate the Plugin Check plugin.<\/li>\n<\/ol>\n<h4>Manual installation<\/h4>\n<ol>\n<li>Upload the entire <code>plugin-check<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Visit <strong>Plugins<\/strong>.<\/li>\n<li>Activate the Plugin Check plugin.<\/li>\n<\/ol>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"where%20can%20i%20contribute%20to%20the%20plugin%3F\">\n<h3>Where can I contribute to the plugin?<\/h3>\n<\/dt>\n<dd>\n<p>All development for this plugin is handled via <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/\" rel=\"nofollow ugc noopener\">GitHub<\/a> any issues or pull requests should be posted there.<\/p>\n<\/dd>\n<dt id=\"what%20if%20the%20plugin%20reports%20something%20that%27s%20correct%20as%20an%20%22error%22%20or%20%22warning%22%3F\">\n<h3>What if the plugin reports something that\u2019s correct as an \u201cerror\u201d or \u201cwarning\u201d?<\/h3>\n<\/dt>\n<dd>\n<p>We strive to write a plugin in a way that minimizes false positives but if you find one, please report it in the GitHub repo. For certain false positives, such as those detected by PHPCodeSniffer, you may be able to annotate the code to ignore the specific problem for a specific line.<\/p>\n<\/dd>\n<dt id=\"why%20does%20it%20flag%20something%20as%20bad%3F\">\n<h3>Why does it flag something as bad?<\/h3>\n<\/dt>\n<dd>\n<p>It\u2019s not flagging \u201cbad\u201d things, as such. Plugin Check is designed to be a non-perfect way to test for compliance with the <a target=\"_blank\" href=\"https:\/\/make.wordpress.org\/plugins\/handbook\/performing-reviews\/review-checklist\/\" rel=\"nofollow ugc noopener\">Plugin Review guidelines<\/a>, as well as additional plugin development best practices in accessibility, performance, security and other areas. Not all plugins must adhere to these guidelines. The purpose of the checking tool is to ensure that plugins uploaded to the <a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/\" rel=\"ugc noopener\">central WordPress.org plugin repository<\/a> meet the latest standards of WordPress plugin and will work on a wide variety of sites.<\/p>\n<p>Many sites use custom plugins, and that\u2019s perfectly okay. But plugins that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Plugin Review guidelines are created with that goal in mind.<\/p>\n<p>This plugin checker is not perfect, and never will be. It is only a tool to help plugin authors, or anybody else who wants to make their plugin more capable. All plugins submitted to WordPress.org are hand-reviewed by a team of experts. The automated plugin checker is meant to be a useful tool only, not an absolute system of measurement.<\/p>\n<\/dd>\n<dt id=\"does%20a%20plugin%20need%20to%20pass%20all%20checks%20to%20be%20approved%20in%20the%20wordpress.org%20plugin%20directory%3F\">\n<h3>Does a plugin need to pass all checks to be approved in the WordPress.org plugin directory?<\/h3>\n<\/dt>\n<dd>\n<p>To be approved in the WordPress.org plugin directory, a plugin must typically pass all checks in the \u201cPlugin repo\u201d category. Other checks are additional and may not be required to pass.<\/p>\n<p>In any case, passing the checks in this tool likely helps to achieve a smooth plugin review process, but is no guarantee that a plugin will be approved in the WordPress.org plugin directory.<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/3a0d4408354ac7f1fddc273366daae9126187a427e91b7798e3502d2ba499b4d?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/3a0d4408354ac7f1fddc273366daae9126187a427e91b7798e3502d2ba499b4d?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/this-plugin-is-a-real-blessing\/\" rel=\"noopener\">This plugin is a real blessing!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/annebovelett\/\" title=\"Posts by Anne-Mieke Bovelett\" rel=\"author noopener\">Anne-Mieke Bovelett<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 19, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I\u2019m working on a Block plugin, for the first time in my life, with the intention to share it in the repo. As I\u2019m walking uncharted territory, The PCP is a real blessing! Thank you, dear Review Team, for creating this.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/452020f5c74d74b37e7a33df091e1350ab67cf485317d150bdbe031ba2c2bc68?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/452020f5c74d74b37e7a33df091e1350ab67cf485317d150bdbe031ba2c2bc68?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/very-useful-thanks-28\/\" rel=\"noopener\">Very useful , Thanks !!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/njengah\/\" title=\"Posts by Njengah\" rel=\"author noopener\">Njengah<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 4, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">This plugin is excellent for catching common mistakes before submission. It significantly saves time by reducing the back-and-forth process. I used it for the first time, and I really liked how efficiently it worked.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/3d30f1cadd5159b06e7c7a61eeaf0c2f94ef79cad046bff231df44f6f1cc2ead?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/3d30f1cadd5159b06e7c7a61eeaf0c2f94ef79cad046bff231df44f6f1cc2ead?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/best-tool-for-wordpress-plugin-developers\/\" rel=\"noopener\">best tool for WordPress plugin developers<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/ranafge\/\" title=\"Posts by Samsul Islam Rana\" rel=\"author noopener\">Samsul Islam Rana<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">December 12, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">The best tool for WordPress plugin developers<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/78e9cf3fd8f40fbe886e119b26c27355a17486a877e1ccf05db74dfe88875286?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/78e9cf3fd8f40fbe886e119b26c27355a17486a877e1ccf05db74dfe88875286?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/the-best-tool-for-wordpress-plugin-developers\/\" rel=\"noopener\">The best tool for WordPress plugin developers<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/carloslongarela\/\" title=\"Posts by Carlos Longarela\" rel=\"author noopener\">Carlos Longarela<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">December 7, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">This tool is a must for every WordPress plugin developer. You can use phpcs with WordPress standards and other useful tools, but this is an essential step to check your plugin, not only if your intention is to publish to WordPress public repo. Accomplish these standards is a must for everyone who works as plugin developer.<\/p>\n<p>Thanks, plugin team, for this powerful tool. Now our developer lives are easier.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/70a6c59a0cdff8269131f4a71de709a1506ea442338fb59e2d01b9445e2d2b86?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/70a6c59a0cdff8269131f4a71de709a1506ea442338fb59e2d01b9445e2d2b86?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"3 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"3\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/tons-of-false-positives\/\" rel=\"noopener\">Tons of false positives<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/prasunsen\/\" title=\"Posts by Bob\" rel=\"author noopener\">Bob<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 15, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Run it on any plugin, including popular ones like Woo and you\u2019ll see tons of nonsense \u201cError\u201d messages about inescaped output. This doesn\u2019t help anyone. These so-called error messages appear even for static text or well trusted data. <\/p>\n<p>Just a random example from Woo:The plugin reports \u201cWordPress.Security.EscapeOutput.ExceptionNotEscaped\u201d for this:throw new \\Exception( sprintf( __( \u2018Could not find classname for order ID %d\u2019, \u2018woocommerce\u2019 ), $order_id ) );$order_id is already int, ensured by the function, and additionally %d ensures it cannot output anything dangerous. You have to either make this smart enough to find real issues or remove these nonsense messages entirely.How is this helping anyone?<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/f04f20f4488fabae4e2b5e657c4c9f3a825dcb7512a94f24c2e05fab9c38d5b1?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/f04f20f4488fabae4e2b5e657c4c9f3a825dcb7512a94f24c2e05fab9c38d5b1?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"2 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"2\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/how-to-add-custom-rules-to-xml-file\/\" rel=\"noopener\">How To Add Custom Rules To xml File?<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/adittaamin\/\" title=\"Posts by Aditta Amin\" rel=\"author noopener\">Aditta Amin<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 6, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Need To Add Custom Rules Into This Plugin That Will Check The Naming Conventions and Global Prefixes.<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/plugin-check\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 25 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cPlugin Check (PCP)\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/178f40079143ff7464125e4fbc88e62024a16442920a6a3d6dfa3d7e626be20d?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/178f40079143ff7464125e4fbc88e62024a16442920a6a3d6dfa3d7e626be20d?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/wordpressdotorg\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tWordPress.org\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cPlugin Check (PCP)\u201d has been translated into 14 locales. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/plugin-check\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/plugin-check\" rel=\"noopener\">Translate \u201cPlugin Check (PCP)\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/plugin-check\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/plugin-check\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/plugin-check\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/plugin-check\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h4>1.4.0<\/h4>\n<ul>\n<li>Enhancement \u2013 Allow ISC license in the License check.<\/li>\n<li>Enhancement \u2013 Added check for use of settings with sanitization callback.<\/li>\n<li>Enhancement \u2013 Added \u2013ignore-codes in CLI to introduce a mechanism to ignore specific error codes.<\/li>\n<li>Enhancement \u2013 New utils for fetching necessary version info details.<\/li>\n<li>Enhancement \u2013 Added check for unsupported plugin name in plugin header field.<\/li>\n<li>Enhancement \u2013 Segregate the severity of i18n checks. Make sure that is giving errors in the right context.<\/li>\n<li>Enhancement \u2013 Provide more detailed information about checks when the README does not include a tested version or a list of contributors.<\/li>\n<li>Enhancement \u2013 Added rules from WPCS to prevent issues with content being sent before headers and warn about the use of Call-time pass-by-reference.<\/li>\n<li>Enhancement \u2013 Give more context in the error of check wrong named files.<\/li>\n<li>Enhancement \u2013 Simplified PHPUnit setup. Now it does not depend of running inside a WordPress installation.<\/li>\n<li>Enhancement \u2013 Added new check for restricted contributors.<\/li>\n<li>Fix \u2013 Delete transients in unit tests to avoid false positives.<\/li>\n<li>Fix \u2013 Incorrect Tested up to version comparison will make error for two major versions up.<\/li>\n<li>Fix \u2013 Excluded the use of functions file_get_contents and file_put_contents in the check to prevent false positives.<\/li>\n<li>Fix \u2013 Duplicated error message in the check for wrong named files.<\/li>\n<li>Fix \u2013 Use of Json encode wasn\u2019t firing the error message.<\/li>\n<li>Fix \u2013 Change error type of NonEnqueuedImage in ImageFunctions sniff from ERROR to WARNING.<\/li>\n<\/ul>\n<h4>1.3.1<\/h4>\n<ul>\n<li>Enhancement \u2013 Add version utilities.<\/li>\n<li>Fix \u2013 Escape error messages.<\/li>\n<li>Fix \u2013 Renamed error type to ERROR_LOW_SEVERITY and WARNING_LOW_SEVERITY.<\/li>\n<li>Fix \u2013 Fix PHPCS checks on unwritable filesystems.<\/li>\n<\/ul>\n<h4>1.3.0<\/h4>\n<ul>\n<li>Enhancement \u2013 Update disallowed domains for Plugin URI check.<\/li>\n<li>Enhancement \u2013 Added new checks for Plugin Header fields: missing plugin description, missing plugin version and invalid plugin version.<\/li>\n<li>Enhancement \u2013 New check for validation of donate link in the readme file.<\/li>\n<li>Enhancement \u2013 Increased severity for wrong Plugin Requires.<\/li>\n<li>Enhancement \u2013 Added check Restrict parse_str() without second argument.<\/li>\n<li>Enhancement \u2013 New check for Disallow usage of HEREDOC and NOWDOC.<\/li>\n<li>Enhancement \u2013 Added acronyms allowed in Trademark checks.<\/li>\n<li>Enhancement \u2013 Added option in CLI to add low severity errors and warnings.<\/li>\n<li>Enhancement \u2013 Change error type for License check error codes.<\/li>\n<li>Enhancement \u2013 Always use prefixed tables during runtime check requests.<\/li>\n<li>Enhancement \u2013 Created a new class for checking licenses.<\/li>\n<li>Enhancement \u2013 Added support for MPL-2.0 license.<\/li>\n<li>Enhancement \u2013 Implement gherkin linter in GH action.<\/li>\n<li>Enhancement \u2013 Update check for Contributors in markdown readme files.<\/li>\n<li>Enhancement \u2013 CLI: Fix confusing runtime environment setup order.<\/li>\n<li>Enhancement \u2013 Allow custom checks to provide installed_paths.<\/li>\n<li>Enhancement \u2013 Improved the use of localhost URLs in the Plugin.<\/li>\n<li>Enhancement \u2013 Documented checks in the plugin.<\/li>\n<li>Enhancement \u2013 Increased severity for Code obfuscation checks.<\/li>\n<li>Enhancement \u2013 Diffentiate between no existent readme and default readme file.<\/li>\n<li>Enhancement \u2013 Encourage developers to use native functions for loading images in templates.<\/li>\n<li>Enhancement \u2013 Added a check for not allowing include libraries already in WordPress core.<\/li>\n<li>Enhancement \u2013 Warning for usage of query_posts() in favor of WP_Query.<\/li>\n<li>Fix \u2013 Fix for the local environment is set up before testing.<\/li>\n<li>Fix \u2013 Fix addon checks not being executed when running runtime checks.<\/li>\n<li>Fix \u2013 Allow <code>default<\/code> as a text domain in the text domain check.<\/li>\n<li>Fix \u2013 Allow GitHub URLs in the Plugin URI field.<\/li>\n<li>Fix \u2013 Don\u2019t flag Apache license. It\u2019s allowed in the WordPress.org plugin repository.<\/li>\n<li>Fix \u2013 Removes the path before the plugin, so it won\u2019t affect to badly named files.<\/li>\n<\/ul>\n<h4>1.2.0<\/h4>\n<ul>\n<li>Enhancement \u2013 Added a check for badly used names in files.<\/li>\n<li>Enhancement \u2013 Increased severity for <code>BacktickOperator<\/code>, <code>DisallowShortOpenTag<\/code>, <code>DisallowAlternativePHPTags<\/code>, <code>RestrictedClasses<\/code>, and <code>RestrictedFunctions<\/code>.<\/li>\n<li>Enhancement \u2013 Added security checks to the Plugin repository category.<\/li>\n<li>Enhancement \u2013 Allowed <code>runtime-set<\/code> in code sniffer checks.<\/li>\n<li>Enhancement \u2013 Changed warnings to errors in plugin header checks.<\/li>\n<li>Enhancement \u2013 Detect forbidden plugin headers such as repository URIs in the Directory.<\/li>\n<li>Enhancement \u2013 Added a new check for development functions that are not allowed in final plugins.<\/li>\n<li>Enhancement \u2013 Created new images and icons for the plugin.<\/li>\n<li>Enhancement \u2013 Introduced a slug argument in the CLI.<\/li>\n<li>Enhancement \u2013 Added a check for discouraged PHP functions.<\/li>\n<li>Enhancement \u2013 Added validation for Contributors in the readme file.<\/li>\n<li>Enhancement \u2013 Added a warning for mismatched plugin names in the plugin header and readme file.<\/li>\n<li>Enhancement \u2013 Checked for validation of Plugin Header fields: Name, Plugin URI, Description, Author URI, Requires at least, Requires PHP, and Requires Plugins.<\/li>\n<li>Enhancement \u2013 Added a warning if the \u201cTested up to\u201d value in the readme file exceeds the released version of WordPress.<\/li>\n<li>Fix \u2013 Display a success message if no errors or warnings are found.<\/li>\n<li>Fix \u2013 Made table results responsive.<\/li>\n<li>Fix \u2013 Prevent proceeding to the next check if the Stable Tag value is set to <code>trunk<\/code>.<\/li>\n<li>Fix \u2013 Allow runtime initialization even when only add-on checks are requested.<\/li>\n<li>Fix \u2013 Fixed an SPDX warning for the <code>GPL version 3<\/code> license.<\/li>\n<li>Fix \u2013 Prevent runtime checks in the CLI context when they cannot be used.<\/li>\n<\/ul>\n<h4>1.1.0<\/h4>\n<ul>\n<li>Feature \u2013 New <code>Non_Blocking_Scripts_Check<\/code> (<code>non_blocking_scripts<\/code>) runtime check to warn about enqueued scripts that use neither <code>defer<\/code> nor <code>async<\/code>.<\/li>\n<li>Enhancement \u2013 Changed the namespace of included checks.<\/li>\n<li>Enhancement \u2013 Introduced severity levels for all errors and warnings.<\/li>\n<li>Enhancement \u2013 CLI: Support checking a plugin from a path or URL.<\/li>\n<li>Enhancement \u2013 Added short descriptions and URLs for each check.<\/li>\n<li>Enhancement \u2013 Improved messaging in check results.<\/li>\n<li>Enhancement \u2013 Updated code obfuscation check with more accurate results.<\/li>\n<li>Enhancement \u2013 Updated plugin review check to flag missing input sanitization (<code>WordPress.Security.ValidatedSanitizedInput<\/code>).<\/li>\n<li>Fix \u2013 Improve readme checks to exclude invalid files.<\/li>\n<li>Fix \u2013 Only show edit link if files are actually editable.<\/li>\n<\/ul>\n<h4>1.0.2<\/h4>\n<ul>\n<li>Feature \u2013 New <code>Enqueued_Scripts_Scope_Check<\/code> (<code>enqueued_scripts_scope<\/code>), <code>Enqueued_Styles_Size_Check<\/code> (<code>enqueued_styles_size<\/code>) and <code>Enqueued_Resources_Check<\/code> (<code>enqueued_resources<\/code>) performance checks.<\/li>\n<li>Enhancement \u2013 Improved readme check and added a new <code>wp_plugin_check_ignored_readme_warnings<\/code> filter.<\/li>\n<li>Enhancement \u2013 New <code>wp_plugin_check_default_categories<\/code> filter to change the categories which are selected by default.<\/li>\n<li>Enhancement \u2013 New <code>wp_plugin_check_ignore_files<\/code> filter to allow ignoring specific files.<\/li>\n<li>Fix \u2013 Correct detection of readme files in Windows by normalizing file paths.<\/li>\n<\/ul>\n<h4>1.0.1<\/h4>\n<ul>\n<li>Fix \u2013 Add missing <code>test-content<\/code> folder needed for runtime checks.<\/li>\n<li>Fix \u2013 Do not send emails when setting up test environment.<\/li>\n<li>Fix \u2013 Prevent PHP warning when the <code>argv<\/code> variable isn\u2019t set.<\/li>\n<\/ul>\n<h4>1.0.0<\/h4>\n<ul>\n<li>Feature \u2013 Complete overhaul of the plugin, its architecture, and all checks.<\/li>\n<li>Feature \u2013 Added new <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/blob\/trunk\/docs\/CLI.md\" rel=\"nofollow ugc noopener\">WP-CLI commands<\/a> for running checks and listing available options.<\/li>\n<li>Enhancement \u2013 Added option to only run checks for a specific category.<\/li>\n<\/ul>\n<h4>0.2.3<\/h4>\n<ul>\n<li>Tweak \u2013 Use version <a target=\"_blank\" href=\"https:\/\/github.com\/PHPCSStandards\/PHP_CodeSniffer\/releases\/tag\/3.8.0\" rel=\"nofollow ugc noopener\">3.8.0 of the PHP_CodeSniffer<\/a> library, moving away from <code>squizlabs\/PHP_CodeSniffer<\/code> to use <code>PHPCSStandards\/PHP_CodeSniffer<\/code>.<\/li>\n<li>Fix \u2013 Ensure the plugin works as expected on the WP playground environment to enable reviewers to use PCP. Props @tellyworth.<\/li>\n<li>Fix \u2013 Undefined array key \u201cargv\u201d when running the plugin check in certain environments. Props @afragen. <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/340\" rel=\"nofollow ugc noopener\">#340<\/a><\/li>\n<\/ul>\n<h4>0.2.2<\/h4>\n<ul>\n<li>Enhancement \u2013 Include support for Windows Servers.<\/li>\n<li>Enhancement \u2013 Avoid using PHP CLI directly, which enables plugin developers to use PCP in a variety of new environments.<\/li>\n<li>Fix \u2013 Remove dependency on <code>shell_exec<\/code> and <code>exec<\/code> functions, which enables plugin developers to use PCP in a variety of new environments.<\/li>\n<li>Fix \u2013 Prevent problems with Readme parser warning related to <code>contributor_ignored<\/code> for when running the check outside WP.org. Props @dev4press. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/276\" rel=\"nofollow ugc noopener\">#276<\/a><\/li>\n<li>Fix \u2013 Remove extra period on the end of the sentence for Phar warning. Props @pixolin. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/275\" rel=\"nofollow ugc noopener\">#275<\/a><\/li>\n<\/ul>\n<h4>0.2.1<\/h4>\n<ul>\n<li>Added \u2013 \u2018View in code editor\u2019 link beneath each PHPCS error or warning. Props @EvanHerman, @westonruter, @felixarntz, @mukeshpanchal27 <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/262\" rel=\"nofollow ugc noopener\">#262<\/a><\/li>\n<li>Fix \u2013 Ensure <code>readme.txt<\/code> has priority over <code>readme.md<\/code> when both are present. Props @bordoni, @afragen <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/258\" rel=\"nofollow ugc noopener\">#258<\/a><\/li>\n<li>Fix \u2013 Ensure that the PHPCS check runs even when the PHPCS binary is not executable. Props @bordoni, @shawn-digitalpoint, @mrfoxtalbot <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/254\" rel=\"nofollow ugc noopener\">#254<\/a><\/li>\n<li>Fix \u2013 Readme changes and typos. Props @aaronjorbin. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/261\" rel=\"nofollow ugc noopener\">#261<\/a><\/li>\n<li>Fix \u2013 Long lines of code with PHPCS check no longer expand over the size of the notice. Props @bordoni, @felixarntz. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/pull\/263\" rel=\"nofollow ugc noopener\">#263<\/a><\/li>\n<li>Fix \u2013 Ensure that we have PHP 7.2 compatibility remove trailing comma. Props @bordoni, @leoloso. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/issues\/265\" rel=\"nofollow ugc noopener\">#265<\/a><\/li>\n<li>Fix \u2013 Include all strings that were missed in the previous release. Props @bordoni, @pixolin. <a target=\"_blank\" href=\"https:\/\/github.com\/10up\/plugin-check\/issues\/270\" rel=\"nofollow ugc noopener\" class=\"broken_link\">#270<\/a><\/li>\n<\/ul>\n<h4>0.2.0<\/h4>\n<ul>\n<li>Feature \u2013 Enable modification of the PHP Binary path used by the plugin with <code>PLUGIN_CHECK_PHP_BIN<\/code> constant.<\/li>\n<li>Feature \u2013 Include a check for the usage of <code>ALLOW_UNFILTERED_UPLOADS<\/code> on any PHP files \u2013 Props EvanHerman at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/45\" rel=\"nofollow ugc noopener\">#45<\/a><\/li>\n<li>Feature \u2013 Include a check for the presence of the application files (<code>.a<\/code>, <code>.bin<\/code>, <code>.bpk<\/code>, <code>.deploy<\/code>, <code>.dist<\/code>, <code>.distz<\/code>, <code>.dmg<\/code>, <code>.dms<\/code>, <code>.DS_Store<\/code>, <code>.dump<\/code>, <code>.elc<\/code>, <code>.exe<\/code>, <code>.iso<\/code>, <code>.lha<\/code>, <code>.lrf<\/code>, <code>.lzh<\/code>, <code>.o<\/code>, <code>.obj<\/code>, <code>.phar<\/code>, <code>.pkg<\/code>, <code>.sh<\/code>, \u2018.so`) \u2013 Props EvanHerman at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/43\" rel=\"nofollow ugc noopener\">#43<\/a><\/li>\n<li>Feature \u2013 Include a check for the presence of the readme.txt or readme.md file \u2013 Props EvanHerman at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/42\" rel=\"nofollow ugc noopener\">#42<\/a><\/li>\n<li>Fix \u2013 Ensure that Readme parsing is included properly when a readme.md or readme.txt file is present. Props Bordoni <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/52\" rel=\"nofollow ugc noopener\">#52<\/a><\/li>\n<li>Tweak \u2013 Disallow functions <code>move_uploaded_file<\/code>, <code>passthru<\/code>, <code>proc_open<\/code> \u2013 Props alexsanford at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/pull\/50\" rel=\"nofollow ugc noopener\">#50<\/a><\/li>\n<li>Tweak \u2013 Change the message type for using functions WordPress already includes from Warning to Error. Props davidperezgar at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/issues\/18\" rel=\"nofollow ugc noopener\">#18<\/a><\/li>\n<li>Tweak \u2013 Change the message type for incorrect usage of Stable tag from Notice\/Warning to Error. Props davidperezgar at <a target=\"_blank\" href=\"https:\/\/github.com\/WordPress\/plugin-check\/issues\/3\" rel=\"nofollow ugc noopener\">#3<\/a><\/li>\n<\/ul>\n<h4>[0.1] 2011-09-04<\/h4>\n<p>Original version of the plugin check tool, not a released version of the plugin, this changelog is here for historical purposes only.<\/p>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Plugin Check (PCP) By WordPress.org Download Details Reviews Installation Development Support Description Plugin Check is a tool for testing whether your plugin meets the required standards for the WordPress.org plugin directory. With this plugin you will be able to run most of the checks used for new submissions, and check if your plugin meets the [&hellip;]<\/p>","protected":false},"author":21,"featured_media":3611,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[1933,39,40],"tags":[2060,2460,1991],"class_list":["post-3610","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-community-plugin","category-lite-version","category-wp-plugin-solution","tag-check","tag-pcp","tag-plugin"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/plugin-check\/assets\/banner-772x250.png?rev=3166100","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=3610"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3610\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/3611"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=3610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=3610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=3610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}