Descripción
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.
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.
The checks can be run either using the WP Admin user interface or WP-CLI:
- To check a plugin using WP Admin, please navigate to the Tools > Plugin Check menu. You need to be able to manage plugins on your site in order to access that screen.
- To check a plugin using WP-CLI, please use the
wp plugin check
command. For example, to check the «Hello Dolly» plugin:wp plugin check hello.php
- 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
--require
argument of WP-CLI, to manually load thecli.php
file within the plugin checker directory before WordPress is loaded. For example:wp plugin check hello.php --require=./wp-content/plugins/plugin-check/cli.php
- 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
The checks are grouped into several categories, so that you can customize which kinds of checks you would like to run on a plugin.
Ten en cuenta que este plugin aún no sustituye al proceso de revisión manual, pero te ayudará a acelerar el proceso de aprobación de tu plugin en el repositorio de plugins de WordPress.org, y también te ayudará a evitar algunos errores comunes.
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.
Instalación
Installation from within WordPress
- Visit Plugins > Add New.
- Search for Plugin Check.
- Install and activate the Plugin Check plugin.
Manual installation
- Upload the entire
plugin-check
folder to the/wp-content/plugins/
directory. - Visit Plugins.
- Activate the Plugin Check plugin.
FAQ
-
¿Dónde puedo contribuir al plugin?
-
Todo el desarrollo de este plugin se lleva a cabo a través de GitHub. Cualquier problema o pull request debe publicarse allí.
-
What if the plugin reports something that’s correct as an «error» or «warning»?
-
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.
-
¿Por qué marca algo como malo?
-
No marca cosas «malas» como tales. Plugin Check está diseñado para ser una forma no perfecta de comprobar el cumplimiento de las directrices de revisión de plugins. No todos los plugins deben cumplir estas directrices. El propósito de la herramienta de comprobación es garantizar que los plugins subidos al repositorio central de plugins de WordPress.org cumplen los últimos estándares de plugins de WordPress y funcionarán en una amplia variedad de sitios.
Muchos sitios utilizan plugins personalizados, y eso está perfectamente bien. Pero los plugins que están destinados a ser utilizados en muchos tipos diferentes de sitios por el público deben tener un cierto nivel mínimo de capacidades, para asegurar un funcionamiento adecuado en diferentes entornos. Las directrices de revisión de plugins se crean con ese objetivo en mente.
Este comprobador de plugins no es perfecto y nunca lo será. Es solo una herramienta para ayudar a los autores de plugins, o a cualquier otra persona que quiera hacer que su plugin sea más capaz. Todos los plugins enviados a WordPress.org son revisados manualmente por un equipo de expertos. El comprobador de plugins automatizado está destinado a ser solo una herramienta útil, no un sistema absoluto de medición.
-
Does a plugin need to pass all checks to be approved in the WordPress.org plugin directory?
-
To be approved in the WordPress.org plugin directory, a plugin must typically pass all checks in the «Plugin repo» category. Other checks are additional and may not be required to pass.
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.
Reseñas
Colaboradores y desarrolladores
«Plugin Check (PCP)» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
Colaboradores«Plugin Check (PCP)» está traducido en 11 idiomas. Gracias a los traductores por sus contribuciones.
Traduce «Plugin Check (PCP)» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.1.0
- Feature – New
Non_Blocking_Scripts_Check
(non_blocking_scripts
) runtime check to warn about enqueued scripts that use neitherdefer
norasync
. - Enhancement – Changed the namespace of included checks.
- Enhancement – Introduced severity levels for all errors and warnings.
- Enhancement – CLI: Support checking a plugin from a path or URL.
- Enhancement – Added short descriptions and URLs for each check.
- Enhancement – Improved messaging in check results.
- Enhancement – Updated code obfuscation check with more accurate results.
- Enhancement – Updated plugin review check to flag missing input sanitization (
WordPress.Security.ValidatedSanitizedInput
). - Fix – Improve readme checks to exclude invalid files.
- Fix – Only show edit link if files are actually editable.
1.0.2
- Feature – New
Enqueued_Scripts_Scope_Check
(enqueued_scripts_scope
),Enqueued_Styles_Size_Check
(enqueued_styles_size
) andEnqueued_Resources_Check
(enqueued_resources
) performance checks. - Enhancement – Improved readme check and added a new
wp_plugin_check_ignored_readme_warnings
filter. - Enhancement – New
wp_plugin_check_default_categories
filter to change the categories which are selected by default. - Enhancement – New
wp_plugin_check_ignore_files
filter to allow ignoring specific files. - Fix – Correct detection of readme files in Windows by normalizing file paths.
1.0.1
- Fix – Add missing
test-content
folder needed for runtime checks. - Fix – Do not send emails when setting up test environment.
- Fix – Prevent PHP warning when the
argv
variable isn’t set.
1.0.0
- Feature – Complete overhaul of the plugin, its architecture, and all checks.
- Feature – Added new WP-CLI commands for running checks and listing available options.
- Enhancement – Added option to only run checks for a specific category.
0.2.3
- Tweak – Use version 3.8.0 of the PHP_CodeSniffer library, moving away from
squizlabs/PHP_CodeSniffer
to usePHPCSStandards/PHP_CodeSniffer
. - Fix – Ensure the plugin works as expected on the WP playground environment to enable reviewers to use PCP. Props @tellyworth.
- Fix – Undefined array key «argv» when running the plugin check in certain environments. Props @afragen. #340
0.2.2
- Enhancement – Include support for Windows Servers.
- Enhancement – Avoid using PHP CLI directly, which enables plugin developers to use PCP in a variety of new environments.
- Fix – Remove dependency on
shell_exec
andexec
functions, which enables plugin developers to use PCP in a variety of new environments. - Fix – Prevent problems with Readme parser warning related to
contributor_ignored
for when running the check outside WP.org. Props @dev4press. #276 - Fix – Remove extra period on the end of the sentence for Phar warning. Props @pixolin. #275
0.2.1
- Añadido: enlace «Ver en editor de código» debajo de cada error o advertencia de PHPCS. Agradecimientos a @EvanHerman, @westonruter, @felixarntz, @mukeshpanchal27 #262
- Corrección – Asegúrese de que
readme.txt
tenga prioridad sobrereadme.md
cuando ambos estén presentes. Agradecimientos a @bordoni, @afragen #258 - Corrección – Asegurarse de que la comprobación de PHPCS se ejecute incluso cuando el binario de PHPCS no sea ejecutable. Agradecimientos a @bordoni, @shawn-digitalpoint, @mrfoxtalbot #254
- Corrección – Cambios en el archivo Readme y corrección de errores tipográficos. Agradecimientos a @aaronjorbin. #261
- Corrección: Las líneas largas de código con la comprobación PHPCS ya no se expanden más allá del tamaño del aviso. Agradecimientos a @bordoni, @felixarntz. #263
- Corrección – Asegurarse de que tengamos compatibilidad con PHP 7.2 y eliminar la coma final. Agradecimientos a @bordoni, @leoloso. #265
- Corrección – Incluir todas las cadenas que se omitieron en la versión anterior. Agradecimientos a @bordoni, @pixolin. #270
0.2.0
- Característica – Habilitada la modificación de la ruta del binario de PHP utilizada por el plugin con la constante
PLUGIN_CHECK_PHP_BIN
. - Característica – Incluída una comprobación del uso de
ALLOW_UNFILTERED_UPLOADS
en cualquier archivo PHP – Gracias a EvanHerman en #45 - Característica – Incluida una comprobación de la presencia de los archivos de aplicación (
.a
,.bin
,.bpk
,.deploy
,.dist
,.distz
,.dmg
,.dms
,.DS_Store
,.dump
,.elc
,.exe
,.iso
,.lha
,.lrf
,.lzh
,.o
,.obj
,.phar
,.pkg
,.sh
, ‘.so`) – Gracias a EvanHerman en #43 - Característica: Incluir una comprobación de la presencia del archivo readme.txt o readme.md – Agradecimientos a EvanHerman en #42
- Corrección – Asegurarse de que el análisis de Readme se incluya correctamente cuando hay un archivo readme.md o readme.txt presente. Agradecimientos a Bordoni #52
- Retoque – Deshabilitar las funciones
move_uploaded_file
,passthru
,proc_open
– Atributos alexsanford en #50 - Retoque – Cambia el tipo de mensaje para utilizar las funciones que WordPress ya incluye de Advertencia a Error. Agradecimientos a davidperezgar en #18
- Retoque – Cambiar el tipo de mensaje para el uso incorrecto de la etiqueta Stable de Aviso/Advertencia a Error. Agradecimientos a davidperezgar en #3
[0.1] 2011-09-04
Versión original de la herramienta de comprobación de plugins, no es una versión lanzada del plugin, este registro de cambios está aquí solo con fines históricos.