{"id":20853,"date":"2026-10-03T19:44:00","date_gmt":"2026-10-03T17:44:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=20853"},"modified":"2026-09-30T12:13:32","modified_gmt":"2026-09-30T10:13:32","slug":"wytyczne-katalogu-wtyczek","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/","title":{"rendered":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia"},"content":{"rendered":"<p>Wtyczka, kt\u00f3ra bez b\u0142\u0119d\u00f3w dzia\u0142a na instalacji testowej, nie jest jeszcze wtyczk\u0105, kt\u00f3r\u0105 WordPress.org przyjmie do katalogu. Ka\u017cde nowe zg\u0142oszenie przechodzi automatyczn\u0105 kontrol\u0119 wst\u0119pn\u0105, a potem r\u0119czny przegl\u0105d wykonywany przez Plugins Team wed\u0142ug Detailed Plugin Guidelines. Wed\u0142ug stanu z 29.09.2026 strona zawiera 18 ponumerowanych wytycznych, ostatnio zaktualizowanych 11.03.2026. Zastrze\u017cenia opisywane przez zesp\u00f3\u0142 rzadko dotycz\u0105 nietypowych przypadk\u00f3w; cz\u0119\u015bciej s\u0105 to powtarzaj\u0105ce si\u0119 wzorce: brakuj\u0105ce lub sprzeczne informacje o licencji, funkcje zablokowane do czasu zap\u0142aty, nieujawnione zapytania do obcych serwer\u00f3w, domy\u015blnie w\u0142\u0105czone linki z podzi\u0119kowaniem i nazwy zaczynaj\u0105ce si\u0119 od cudzego znaku towarowego.<\/p>\n<p>Artyku\u0142 grupuje 18 wytycznych tematycznie, na przyk\u0142adzie kr\u00f3tkiej wtyczki pokazuje zgod\u0119 przed zapytaniem wychodz\u0105cym i link z podzi\u0119kowaniem na zasadzie opt-in, wyja\u015bnia, jak powstaje slug, i prowadzi zg\u0142oszenie od przes\u0142ania ZIP-a do pierwszego commita w SVN, \u0142\u0105cznie z danymi o kolejce z 28.09.2026. Plugin Check, <span class=\"lw-artikel-geplant\">funkcje bezpiecze\u0144stwa<\/span> i format readme maj\u0105 w tej serii osobne artyku\u0142y. Wpisy o w\u0142asnych wtyczkach <a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/przyspieszanie-witryny-wordpress-dzieki-lite-page-cache\/\">Lite Page Cache<\/a> i <a href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/zabezpieczanie-logowania-do-wordpressa-wp-admin-captcha\/\">WP Admin Captcha<\/a> pokazuj\u0105, co takie wtyczki robi\u0105 na stronie; tutaj chodzi o drog\u0119 do oficjalnego katalogu.<\/p>\n<h2>Osiemna\u015bcie wytycznych w czterech grupach<\/h2>\n<p>Numer wytycznej nie m\u00f3wi nic o tym, jak cz\u0119sto prowadzi ona do odrzucenia, a Plugins Team nie publikuje takiego zestawienia. Raport roczny za 2025 rok podaje tylko sumy: 12\u00a0713 sprawdzonych wtyczek, 5415 zatwierdzonych, 59\u00a0137 wykrytych problem\u00f3w, a w przypadku 38,7 procent sprawdzonych wtyczek autorzy nie odpowiedzieli. Zesp\u00f3\u0142 prowadzi te\u017c stron\u0119 podr\u0119cznika \u201eCommon issues\u201d z fragmentami wiadomo\u015bci z przegl\u0105d\u00f3w, ale i ona nie porz\u0105dkuje problem\u00f3w wed\u0142ug cz\u0119stotliwo\u015bci i sama okre\u015bla si\u0119 jako niekompletna. Kolejno\u015b\u0107 w artykule wynika z temat\u00f3w tej strony i FAQ dla tw\u00f3rc\u00f3w; to grupowanie, a nie ranking.<\/p>\n<table>\n<thead>\n<tr>\n<th>Grupa<\/th>\n<th>Wytyczne<\/th>\n<th>G\u0142\u00f3wna zasada<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Licencja i kod<\/td>\n<td>1, 4, 13<\/td>\n<td>Licencja zgodna z GPL, czytelny kod, bez do\u0142\u0105czonych bibliotek z rdzenia<\/td>\n<\/tr>\n<tr>\n<td>Model biznesowy<\/td>\n<td>5, 6, 8<\/td>\n<td>Bez blokowania funkcji, udokumentowane us\u0142ugi, bez kodu i aktualizacji z obcych serwer\u00f3w<\/td>\n<\/tr>\n<tr>\n<td>Ochrona u\u017cytkownik\u00f3w<\/td>\n<td>7, 10, 11<\/td>\n<td>Zgoda przed kontaktem z zewn\u0105trz, podzi\u0119kowania domy\u015blnie wy\u0142\u0105czone, bez przejmowania kokpitu<\/td>\n<\/tr>\n<tr>\n<td>Katalog i post\u0119powanie<\/td>\n<td>2, 3, 9, 12, 14\u201318<\/td>\n<td>Odpowiedzialno\u015b\u0107, uczciwo\u015b\u0107, brak spamu w readme, SVN tylko na wydania, kompletna wtyczka, znaki towarowe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dwie wytyczne stanowi\u0105 ram\u0119 dla pozosta\u0142ych. Wed\u0142ug wytycznej 2 tw\u00f3rca odpowiada za ka\u017cdy plik, tak\u017ce za biblioteki zewn\u0119trzne, oraz za warunki us\u0142ug, z kt\u00f3rych korzysta wtyczka. Wytyczna 18 zastrzega prawo do zmiany zasad, usuwania wtyczek, przyznawania wyj\u0105tk\u00f3w i dzia\u0142ania tak\u017ce z powod\u00f3w, kt\u00f3rych lista nie wymienia. Wytyczne s\u0105 minimum, a nie zamkni\u0119t\u0105 umow\u0105.<\/p>\n<h2>Licencja, czytelny kod i do\u0142\u0105czone biblioteki<\/h2>\n<p>Wytyczna 1 wymaga licencji zgodnej z GNU General Public License; zalecana jest \u201eGPLv2 or later\u201d, licencja samego WordPressa. Wym\u00f3g obejmuje ca\u0142\u0105 zawarto\u015b\u0107 pliku ZIP, tak\u017ce pliki danych i obrazy, a komponenty zewn\u0119trzne ocenia si\u0119 wed\u0142ug listy zgodnych licencji na gnu.org. \u201eCommon issues\u201d pokazuje kilka odmian tego samego problemu: brak deklaracji licencji zgodnej z GPL, r\u00f3\u017cne licencje w readme i w nag\u0142\u00f3wku wtyczki, niezgodny kod w paczce oraz zminifikowane pliki bez udokumentowanego \u017ar\u00f3d\u0142a.<\/p>\n<p>Ostatni punkt dotyczy wytycznej 4. Zaciemniony kod jest zabroniony, a zminifikowane pliki s\u0105 akceptowane tylko wtedy, gdy czytelne \u017ar\u00f3d\u0142o jest do\u0142\u0105czone lub publicznie podlinkowane w readme. Wtyczka korzystaj\u0105ca z Composera powinna zawiera\u0107 <code>composer.json<\/code>. Wytyczna 13 zakazuje do\u0142\u0105czania bibliotek, kt\u00f3re WordPress ju\u017c zawiera; \u201eCommon issues\u201d wymienia m.in. jQuery, SimplePie, PHPMailer i PHPass. Ta sama strona wskazuje pozosta\u0142o\u015bci po pracy nad kodem, takie jak <code>node_modules<\/code>, testy i katalogi demonstracyjne. \u017badna z tych poprawek nie jest trudna, ale ka\u017cda kosztuje rund\u0119 korespondencji. Pola nag\u0142\u00f3wka i readme omawia <span class=\"lw-artikel-geplant\">osobny artyku\u0142 tej serii<\/span>.<\/p>\n<h2>Trialware, us\u0142ugi i kod z obcych serwer\u00f3w<\/h2>\n<p>Najostrzejsze granice dotycz\u0105 modelu biznesowego. Wytyczna 5 zakazuje trialware: funkcje nie mog\u0105 by\u0107 zablokowane do czasu zap\u0142aty ani przestawa\u0107 dzia\u0142a\u0107 po okresie pr\u00f3bnym lub po wyczerpaniu limitu. Sam dost\u0119p do API w trybie sandbox r\u00f3wnie\u017c uznaje si\u0119 za trialware. Wytyczna 9 dodaje, \u017ce sugerowanie konieczno\u015bci zap\u0142aty za funkcje ju\u017c zawarte we wtyczce jest nieuczciwe.<\/p>\n<p>To, co dozwolone, opisuje wytyczna 6. Wtyczka mo\u017ce by\u0107 interfejsem do zewn\u0119trznej, tak\u017ce p\u0142atnej us\u0142ugi, je\u015bli us\u0142uga zapewnia istotn\u0105 funkcjonalno\u015b\u0107 i jest opisana w readme, najlepiej z linkiem do warunk\u00f3w korzystania. Wykluczone s\u0105 us\u0142ugi, kt\u00f3re tylko sprawdzaj\u0105 licencj\u0119, podczas gdy ca\u0142a funkcja siedzi we wtyczce, kod przeniesiony na serwer wy\u0142\u0105cznie dla pozoru oraz same sklepy.<\/p>\n<p>Stron\u0119 techniczn\u0105 reguluje wytyczna 8. Kod z udokumentowanej us\u0142ugi wolno \u0142adowa\u0107 przez bezpieczne po\u0142\u0105czenie. Zabronione s\u0105 aktualizacje i instalacje wtyczek, motyw\u00f3w i dodatk\u00f3w z serwer\u00f3w innych ni\u017c WordPress.org, instalowanie wersji premium tej samej wtyczki, obce CDN do cel\u00f3w innych ni\u017c czcionki oraz strony administracyjne osadzane w iframe. \u201eCommon issues\u201d uzupe\u0142nia, \u017ce wtyczki nie mog\u0105 \u0142\u0105czy\u0107 si\u0119 z innymi serwerami w sprawie aktualizacji ani przenosi\u0107 na zewn\u0105trz obraz\u00f3w, skrypt\u00f3w czy arkuszy styl\u00f3w niezwi\u0105zanych z us\u0142ug\u0105.<\/p>\n<p>Dla modelu freemium wynika z tego jasny schemat. Bezp\u0142atna wtyczka musi by\u0107 kompletna sama w sobie, p\u0142atne funkcje mog\u0105 dzia\u0142a\u0107 w us\u0142udze, a komunikaty o wersji rozszerzonej s\u0105 dozwolone w granicach wytycznej 11: w odpowiednim kontek\u015bcie lub na stronie ustawie\u0144, a komunikaty w ca\u0142ym panelu musz\u0105 da\u0107 si\u0119 zamkn\u0105\u0107. Bezp\u0142atna wtyczka nie mo\u017ce sama pobiera\u0107 i instalowa\u0107 swojej p\u0142atnej wersji.<\/p>\n<h2>Zgoda przed zapytaniami i linki na stronie publicznej<\/h2>\n<p>Wytyczna 7 zakazuje kontaktu z obcymi serwerami bez wyra\u017anej i \u015bwiadomej zgody, uzyskiwanej zwykle przez opt-in, rejestracj\u0119 w us\u0142udze lub pole wyboru w ustawieniach. Zbieranie danych nale\u017cy opisa\u0107 w readme, najlepiej wraz z polityk\u0105 prywatno\u015bci. Jako niedozwolone wytyczna wymienia m.in. automatyczne zbieranie danych bez potwierdzenia, przenoszenie zasob\u00f3w niezwi\u0105zanych z us\u0142ug\u0105, nieudokumentowane korzystanie z danych zewn\u0119trznych, na przyk\u0142ad list blokad, oraz reklamy firm trzecich \u015bledz\u0105ce wy\u015bwietlenia. Wyj\u0105tek dotyczy wtyczek b\u0119d\u0105cych interfejsem do us\u0142ugi, na przyk\u0142ad filtra antyspamowego z zewn\u0119trznym API: instalacja i konfiguracja oznaczaj\u0105 w takim przypadku zgod\u0119.<\/p>\n<p>Wytyczna 10 przenosi t\u0119 zasad\u0119 na front strony. Dopiski \u201ePowered by\u201d i linki musz\u0105 by\u0107 opcjonalne i domy\u015blnie wy\u0142\u0105czone, opt-in ma by\u0107 jasno opisanym wyborem, a nie zdaniem w warunkach korzystania, a dzia\u0142anie wtyczki nie mo\u017ce zale\u017ce\u0107 od wy\u015bwietlanego podzi\u0119kowania.<\/p>\n<p>Poni\u017csza wtyczka oblicza czas czytania ca\u0142kowicie lokalnie i oferuje dwa opcjonalne dodatki: cotygodniowe statystyki u\u017cycia wysy\u0142ane na przyk\u0142adowy serwer oraz link do strony wtyczki. Obie opcje maj\u0105 domy\u015blnie warto\u015b\u0107 <code>false<\/code>. Bez zgody funkcja statystyk ko\u0144czy dzia\u0142anie, zanim powstanie jakiekolwiek zapytanie, a link pojawia si\u0119 dopiero po drugim opt-in. Poniewa\u017c HTTP API w domy\u015blnym User-Agencie przesy\u0142a adres strony, przyk\u0142ad ustawia w\u0142asny User-Agent.<\/p>\n<pre><code>&lt;?php\n\/**\n * Plugin Name:       Reading Time Badge\n * Description:       Shows the estimated reading time above posts. Usage statistics and a credit link are opt-in.\n * Version:           1.0.0\n * Requires at least: 6.5\n * Requires PHP:      7.4\n * License:           GPLv2 or later\n * License URI:       https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\n * Text Domain:       reading-time-badge\n *\n * @package ReadingTimeBadge\n *\/\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n\ndefine( 'RTBADGE_VERSION', '1.0.0' );\ndefine( 'RTBADGE_STATS_URL', 'https:\/\/stats.example.com\/v1\/ping' );\n\n\/**\n * Returns the settings merged with defaults. Every outgoing feature is off by default.\n *\n * @return array\n *\/\nfunction rtbadge_get_settings() {\n\t$defaults = array(\n\t\t'share_stats' =&gt; false,\n\t\t'show_credit' =&gt; false,\n\t);\n\treturn wp_parse_args( (array) get_option( 'rtbadge_settings', array() ), $defaults );\n}\n\n\/**\n * Stores exactly two booleans, whatever the form sends.\n *\n * @param mixed $input Raw option value.\n * @return array\n *\/\nfunction rtbadge_sanitize_settings( $input ) {\n\t$input = is_array( $input ) ? $input : array();\n\treturn array(\n\t\t'share_stats' =&gt; ! empty( $input['share_stats'] ),\n\t\t'show_credit' =&gt; ! empty( $input['show_credit'] ),\n\t);\n}\n\nadd_action( 'admin_init', 'rtbadge_register_settings' );\n\n\/**\n * Registers the option with a sanitize callback.\n *\/\nfunction rtbadge_register_settings() {\n\tregister_setting(\n\t\t'rtbadge',\n\t\t'rtbadge_settings',\n\t\tarray(\n\t\t\t'type'              =&gt; 'array',\n\t\t\t'sanitize_callback' =&gt; 'rtbadge_sanitize_settings',\n\t\t\t'default'           =&gt; array(\n\t\t\t\t'share_stats' =&gt; false,\n\t\t\t\t'show_credit' =&gt; false,\n\t\t\t),\n\t\t)\n\t);\n}\n\nadd_action( 'admin_menu', 'rtbadge_add_settings_page' );\n\n\/**\n * Adds the settings page below Settings.\n *\/\nfunction rtbadge_add_settings_page() {\n\tadd_options_page(\n\t\t__( 'Reading Time Badge', 'reading-time-badge' ),\n\t\t__( 'Reading Time Badge', 'reading-time-badge' ),\n\t\t'manage_options',\n\t\t'rtbadge',\n\t\t'rtbadge_render_settings_page'\n\t);\n}\n\n\/**\n * Renders two unchecked-by-default opt-in checkboxes.\n *\/\nfunction rtbadge_render_settings_page() {\n\tif ( ! current_user_can( 'manage_options' ) ) {\n\t\treturn;\n\t}\n\t$settings = rtbadge_get_settings();\n\t?&gt;\n\t&lt;div class=\"wrap\"&gt;\n\t\t&lt;h1&gt;&lt;?php echo esc_html( get_admin_page_title() ); ?&gt;&lt;\/h1&gt;\n\t\t&lt;form action=\"options.php\" method=\"post\"&gt;\n\t\t\t&lt;?php settings_fields( 'rtbadge' ); ?&gt;\n\t\t\t&lt;p&gt;\n\t\t\t\t&lt;label&gt;\n\t\t\t\t\t&lt;input type=\"checkbox\" name=\"rtbadge_settings[share_stats]\" value=\"1\" &lt;?php checked( $settings['share_stats'] ); ?&gt;&gt;\n\t\t\t\t\t&lt;?php esc_html_e( 'Send usage statistics (plugin, WordPress and PHP version) to stats.example.com once a week.', 'reading-time-badge' ); ?&gt;\n\t\t\t\t&lt;\/label&gt;\n\t\t\t&lt;\/p&gt;\n\t\t\t&lt;p&gt;\n\t\t\t\t&lt;label&gt;\n\t\t\t\t\t&lt;input type=\"checkbox\" name=\"rtbadge_settings[show_credit]\" value=\"1\" &lt;?php checked( $settings['show_credit'] ); ?&gt;&gt;\n\t\t\t\t\t&lt;?php esc_html_e( 'Show a link to the plugin website next to the reading time on the public site.', 'reading-time-badge' ); ?&gt;\n\t\t\t\t&lt;\/label&gt;\n\t\t\t&lt;\/p&gt;\n\t\t\t&lt;?php submit_button(); ?&gt;\n\t\t&lt;\/form&gt;\n\t&lt;\/div&gt;\n\t&lt;?php\n}\n\nadd_action( 'admin_init', 'rtbadge_maybe_send_stats' );\n\n\/**\n * Sends usage statistics at most once a week, and only after opt-in.\n *\/\nfunction rtbadge_maybe_send_stats() {\n\t$settings = rtbadge_get_settings();\n\tif ( ! $settings['share_stats'] ) {\n\t\treturn; \/\/ No consent: no request at all.\n\t}\n\tif ( false !== get_transient( 'rtbadge_stats_sent' ) ) {\n\t\treturn;\n\t}\n\tset_transient( 'rtbadge_stats_sent', 1, WEEK_IN_SECONDS );\n\n\twp_remote_post(\n\t\tRTBADGE_STATS_URL,\n\t\tarray(\n\t\t\t'blocking'   =&gt; false,\n\t\t\t'timeout'    =&gt; 5,\n\t\t\t\/\/ The default user agent of the HTTP API contains the site URL; replace it.\n\t\t\t'user-agent' =&gt; 'reading-time-badge\/' . RTBADGE_VERSION,\n\t\t\t'body'       =&gt; array(\n\t\t\t\t'plugin_version' =&gt; RTBADGE_VERSION,\n\t\t\t\t'wp_version'     =&gt; get_bloginfo( 'version' ),\n\t\t\t\t'php_version'    =&gt; PHP_VERSION,\n\t\t\t),\n\t\t)\n\t);\n}\n\nadd_filter( 'the_content', 'rtbadge_prepend_reading_time' );\n\n\/**\n * Prepends the reading time. The credit link appears only after opt-in.\n *\n * @param string $content Post content.\n * @return string\n *\/\nfunction rtbadge_prepend_reading_time( $content ) {\n\tif ( ! is_singular( 'post' ) || ! in_the_loop() || ! is_main_query() ) {\n\t\treturn $content;\n\t}\n\t$words   = preg_split( '\/\\s+\/u', trim( wp_strip_all_tags( $content ) ), -1, PREG_SPLIT_NO_EMPTY );\n\t$minutes = max( 1, (int) ceil( count( $words ) \/ 200 ) ); \/\/ Assumes 200 words per minute.\n\n\t$badge = '&lt;p class=\"rtbadge\"&gt;' . esc_html(\n\t\tsprintf(\n\t\t\t\/* translators: %d: estimated reading time in minutes *\/\n\t\t\t_n( '%d minute read', '%d minutes read', $minutes, 'reading-time-badge' ),\n\t\t\t$minutes\n\t\t)\n\t);\n\n\t$settings = rtbadge_get_settings();\n\tif ( $settings['show_credit'] ) {\n\t\t$badge .= ' &amp;middot; &lt;a href=\"' . esc_url( 'https:\/\/example.com\/reading-time-badge\/' ) . '\"&gt;'\n\t\t\t. esc_html__( 'Reading Time Badge', 'reading-time-badge' ) . '&lt;\/a&gt;';\n\t}\n\n\treturn $badge . '&lt;\/p&gt;' . $content;\n}<\/code><\/pre>\n<p>Readme opisuje, co, kiedy i dok\u0105d jest wysy\u0142ane. Dok\u0142adnie tych element\u00f3w \u201eCommon issues\u201d oczekuje przy us\u0142ugach zewn\u0119trznych: kiedy wtyczka korzysta z us\u0142ugi, linku do niej oraz link\u00f3w do warunk\u00f3w korzystania lub polityki prywatno\u015bci. Nag\u0142\u00f3wek w przyk\u0142adzie to propozycja, a nie wym\u00f3g.<\/p>\n<pre><code>== Privacy and external services ==\n\nReading Time Badge calculates the reading time locally and works without any external service.\n\nIf the option \"Send usage statistics\" under Settings &gt; Reading Time Badge is enabled,\nthe plugin sends the plugin version, the WordPress version and the PHP version\nto stats.example.com once a week. The request contains no site URL, no user data\nand no content. As with any HTTP request, the server's IP address is visible to the service.\nThe option is disabled by default.\n\n* Service: https:\/\/stats.example.com\/\n* Terms of use: https:\/\/stats.example.com\/terms\/\n* Privacy policy: https:\/\/stats.example.com\/privacy\/<\/code><\/pre>\n<h2>Nazwa wtyczki, slug i znaki towarowe<\/h2>\n<p>Slug to sta\u0142y adres wtyczki w katalogu i w SVN. Wed\u0142ug strony zg\u0142osze\u0144 powstaje z nag\u0142\u00f3wka <code>Plugin Name<\/code>; je\u015bli nazwa jest zaj\u0119ta, dopisywany jest numer. FAQ dla tw\u00f3rc\u00f3w pozwala raz zmieni\u0107 slug po zg\u0142oszeniu, a po zatwierdzeniu ju\u017c wcale, natomiast wy\u015bwietlana nazwa pozostaje zmienna.<\/p>\n<p>Wytyczna 17 zabrania, aby znak towarowy lub nazwa innego projektu by\u0142a jedynym albo pierwszym cz\u0142onem sluga, chyba \u017ce udowodniono prawo w\u0142asno\u015bci lub upowa\u017cnienie. Przyk\u0142adem jest sam WordPress: znak nale\u017cy do WordPress Foundation, a zasada obejmuje wprost tak\u017ce slugi wtyczek. Pozosta\u0142ym wytyczna zaleca form\u0119 \u201eFunkcja for Marka\u201d, a jeszcze lepiej oryginaln\u0105 nazw\u0119. Wytyczna 16 dodaje, \u017ce slug\u00f3w nie da si\u0119 rezerwowa\u0107; zg\u0142asza si\u0119 wy\u0142\u0105cznie kompletn\u0105 wtyczk\u0119.<\/p>\n<table>\n<thead>\n<tr>\n<th>Nag\u0142\u00f3wek Plugin Name<\/th>\n<th>Slug<\/th>\n<th>Wytyczna 17<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>WordPress Delivery Dates<\/td>\n<td><code>wordpress-delivery-dates<\/code><\/td>\n<td>Zaczyna si\u0119 od chronionego terminu, niedopuszczalny<\/td>\n<\/tr>\n<tr>\n<td>WooCommerce Delivery Dates<\/td>\n<td><code>woocommerce-delivery-dates<\/code><\/td>\n<td>Dopuszczalny tylko dla w\u0142a\u015bciciela znaku<\/td>\n<\/tr>\n<tr>\n<td>Delivery Dates for WooCommerce<\/td>\n<td><code>delivery-dates-for-woocommerce<\/code><\/td>\n<td>Odpowiada formie \u201eFunkcja for Marka\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Nag\u0142\u00f3wek trzeciego wariantu przedstawiono poni\u017cej. \u201eCommon issues\u201d oczekuje te\u017c, \u017ce plik g\u0142\u00f3wny b\u0119dzie nazwany jak slug, a Text Domain b\u0119dzie z nim zgodna.<\/p>\n<pre><code>&lt;?php\n\/**\n * Plugin Name: Delivery Dates for WooCommerce\n * Description: Lets customers pick a delivery date at checkout.\n * Version:     1.0.0\n * License:     GPLv2 or later\n * Text Domain: delivery-dates-for-woocommerce\n *\n * @package DeliveryDatesForWooCommerce\n *\/\n\n\/\/ Main file: delivery-dates-for-woocommerce\/delivery-dates-for-woocommerce.php\n\/\/ Slug proposed on submission: delivery-dates-for-woocommerce\n\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}<\/code><\/pre>\n<p>Znaczenie ma te\u017c konto, z kt\u00f3rego wysy\u0142ane jest zg\u0142oszenie. FAQ dopuszcza z regu\u0142y jedno zg\u0142oszenie naraz, do dziesi\u0119ciu przy ponad milionie aktywnych instalacji, i zawiesza konta dodatkowe zak\u0142adane w celu obej\u015bcia limitu. Organizacje zg\u0142aszaj\u0105 wtyczki z oficjalnego konta. Wytyczna 9 zakazuje kont-marionetek i fa\u0142szywej to\u017csamo\u015bci s\u0142u\u017c\u0105cej obej\u015bciu wcze\u015bniejszych sankcji. Od 01.10.2024 uwierzytelnianie dwusk\u0142adnikowe jest obowi\u0105zkowe dla wszystkich kont w\u0142a\u015bcicieli wtyczek i os\u00f3b z prawem commita.<\/p>\n<h2>Od przes\u0142ania ZIP-a do pierwszego commita w SVN<\/h2>\n<p>Na pocz\u0105tku jest plik ZIP mniejszy ni\u017c 10 MB, kt\u00f3ry da si\u0119 zainstalowa\u0107 przez funkcj\u0119 przesy\u0142ania wtyczek w kokpicie. Od 01.10.2024 przechodzi on najpierw przez kategori\u0119 \u201ePlugin Repo\u201d narz\u0119dzia Plugin Check; wynik na poziomie b\u0142\u0119du blokuje zg\u0142oszenie do czasu poprawki. Ten krok opisuje <span class=\"lw-artikel-geplant\">osobny artyku\u0142 o Plugin Check<\/span>. Po przes\u0142aniu przychodzi potwierdzenie, a wtyczka trafia do kolejki.<\/p>\n<p>R\u0119czny przegl\u0105d obejmuje bezpiecze\u0144stwo, zgodno\u015b\u0107, przestrzeganie wytycznych i prezentacj\u0119. Bez uwag wtyczka jest zatwierdzana, w przeciwnym razie wiadomo\u015b\u0107 wymienia potrzebne zmiany. FAQ prosi o odpowied\u017a w tym samym w\u0105tku i o niezg\u0142aszanie wtyczki ponownie. Wyj\u0105tek: przegl\u0105d niezako\u0144czony w ci\u0105gu trzech miesi\u0119cy ko\u0144czy si\u0119 odrzuceniem, a wtedy nale\u017cy zg\u0142osi\u0107 wtyczk\u0119 ponownie i odpowiedzie\u0107 na star\u0105 wiadomo\u015b\u0107.<\/p>\n<p>Po zatwierdzeniu e-mail wyja\u015bnia dost\u0119p do repozytorium Subversion pod adresem <code>https:\/\/plugins.svn.wordpress.org\/<\/code> uzupe\u0142nionym o slug, z katalogami <code>trunk\/<\/code>, <code>tags\/<\/code> i <code>assets\/<\/code>. W nazwie u\u017cytkownika liczy si\u0119 wielko\u015b\u0107 liter, a w ustawieniach konta da si\u0119 ustawi\u0107 osobne has\u0142o do SVN. Wed\u0142ug FAQ wtyczka jest publiczna, gdy tylko kod trafi do repozytorium. Kolejne wydania od 05.06.2026 czekaj\u0105 przed dystrybucj\u0105 przez API aktualizacji obecnie sze\u015b\u0107 godzin; w tym czasie automatyczna kontrola bezpiecze\u0144stwa analizuje zmiany i blokuje wydania z wysok\u0105 ocen\u0105 ryzyka.<\/p>\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/wp-plugin-richtlinien-pl.png?v=20260930\" width=\"1120\" height=\"580\" alt=\"Od przes\u0142ania ZIP-a do pierwszego commita w SVN\"><figcaption>Droga nowego zg\u0142oszenia do katalogu wtyczek WordPress.org, z p\u0119tlami po b\u0142\u0119dach, uwagach i up\u0142ywie terminu<\/figcaption><\/figure>\n<h3>Kolejka wed\u0142ug stanu z 28.09.2026<\/h3>\n<p>Cotygodniowy raport z 28.09.2026 w serwisie make.wordpress.org\/updates podaje 4598 wtyczek w kolejce. Tylko 30 z nich to nowe, nieobs\u0142u\u017cone zg\u0142oszenia, 3860 czeka na autor\u00f3w, 475 na recenzenta, a 233 oznaczono jako czekaj\u0105ce na recenzenta z niewys\u0142an\u0105 jeszcze wiadomo\u015bci\u0105. 07.09.2026 w kolejce by\u0142y 4893 wtyczki, w tym 160 nowych i nieobs\u0142u\u017conych.<\/p>\n<p>Raporty nie podaj\u0105 czasu oczekiwania. Niewielka liczba nieobs\u0142u\u017conych zg\u0142osze\u0144 wskazuje, \u017ce pierwszy przegl\u0105d nast\u0119puje obecnie wkr\u00f3tce po przes\u0142aniu, ale to interpretacja. Oficjalne ramy czasowe s\u0105 r\u00f3\u017cne: strona zg\u0142osze\u0144 m\u00f3wi o okresie od jednego do dziesi\u0119ciu dni z celem pi\u0119ciu dni roboczych, a FAQ zak\u0142ada zatwierdzenie ma\u0142ej, poprawnej wtyczki w ci\u0105gu czternastu dni od pierwszego przegl\u0105du. Zmienno\u015b\u0107 sytuacji pokazuje raport z czerwca 2026: oko\u0142o 1050 wtyczek w po\u0142owie kwietnia, niemal zero kilka tygodni p\u00f3\u017aniej i rekordowe oko\u0142o 700 zg\u0142osze\u0144 tygodniowo w maju.<\/p>\n<h2>Ograniczenia i otwarte kwestie<\/h2>\n<p>Nie ma oficjalnych danych o tym, kt\u00f3ra wytyczna najcz\u0119\u015bciej prowadzi do odrzucenia; grupowanie nie jest rankingiem. Dane o kolejce opisuj\u0105 stan, a nie czas oczekiwania, a wi\u0119kszo\u015b\u0107 pozycji czeka na autor\u00f3w, nie na recenzent\u00f3w. Dane z czerwca i wrze\u015bnia prawdopodobnie licz\u0105 r\u00f3\u017cne rzeczy, a starsza strona podr\u0119cznika z 2022 roku wci\u0105\u017c m\u00f3wi o czternastu dniach roboczych.<\/p>\n<p>Og\u0142oszenie nie wyja\u015bnia, czy sze\u015bciogodzinne oczekiwanie obejmuje tak\u017ce pierwsze wydanie \u015bwie\u017co zatwierdzonej wtyczki. Kontrola wst\u0119pna z Plugin Check jest opisana tak, jak og\u0142oszono j\u0105 w pa\u017adzierniku 2024; jej zakres m\u00f3g\u0142 si\u0119 zmieni\u0107. Wytyczne s\u0105 regularnie aktualizowane, dlatego tu\u017c przed zg\u0142oszeniem warto przeczyta\u0107 je ponownie. Przyk\u0142adowa wtyczka przechodzi WordPress Coding Standards bez zg\u0142osze\u0144; Plugin Check 2.1.0 w WordPressie 7.1.2 zg\u0142asza jedynie brak <code>readme.txt<\/code> (<code>no_plugin_readme<\/code>), a z kompletnym plikiem readme zawieraj\u0105cym pokazan\u0105 sekcj\u0119 nie zg\u0142asza niczego, \u0142\u0105cznie z testami uruchomieniowymi.<\/p>\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n<h3>Czy wtyczka w katalogu mo\u017ce reklamowa\u0107 p\u0142atn\u0105 wersj\u0119 Pro?<\/h3>\n<p>Tak, w pewnych granicach. Wytyczna 11 dopuszcza komunikaty o wersji rozszerzonej, je\u015bli pasuj\u0105 do kontekstu lub s\u0105 ograniczone do strony ustawie\u0144 wtyczki; komunikaty widoczne w ca\u0142ym panelu musz\u0105 da\u0107 si\u0119 zamkn\u0105\u0107. Sama bezp\u0142atna wtyczka musi pozosta\u0107 kompletna (wytyczna 5), nie mo\u017ce sugerowa\u0107, \u017ce zawarte w niej funkcje wymagaj\u0105 zap\u0142aty (wytyczna 9), i nie mo\u017ce sama pobiera\u0107 ani instalowa\u0107 wersji premium (wytyczna 8).<\/p>\n<h3>Czy slug da si\u0119 zmieni\u0107 po zatwierdzeniu wtyczki?<\/h3>\n<p>Nie. Wed\u0142ug FAQ dla tw\u00f3rc\u00f3w slug da si\u0119 zmieni\u0107 raz po zg\u0142oszeniu, a po zatwierdzeniu ju\u017c wcale. Wy\u015bwietlana nazwa z nag\u0142\u00f3wka <code>Plugin Name<\/code> mo\u017ce zmienia\u0107 si\u0119 tak\u017ce p\u00f3\u017aniej. Nazwa wybrana przed przes\u0142aniem pliku decyduje wi\u0119c o sta\u0142ym adresie w katalogu i w SVN.<\/p>\n<h3>Czy bezb\u0142\u0119dny wynik Plugin Check oznacza, \u017ce wtyczka zostanie zatwierdzona?<\/h3>\n<p>Nie. Przy zg\u0142oszeniu uruchamiana jest tylko kategoria \u201ePlugin Repo\u201d, a zg\u0142oszenie blokuj\u0105 wy\u0142\u0105cznie wyniki na poziomie b\u0142\u0119du. Potem nast\u0119puje r\u0119czny przegl\u0105d bezpiecze\u0144stwa, zgodno\u015bci, wytycznych i prezentacji. Kilka wytycznych dotyczy kwestii, kt\u00f3re automatyczna kontrola ocenia tylko cz\u0119\u015bciowo, na przyk\u0142ad modelu biznesowego, zgody przed zapytaniami zewn\u0119trznymi czy znak\u00f3w towarowych w nazwie.<\/p>\n<h3>Co dzieje si\u0119 ze zg\u0142oszeniem, gdy wiadomo\u015b\u0107 z przegl\u0105du pozostaje bez odpowiedzi?<\/h3>\n<p>Je\u015bli przegl\u0105d nie zostanie zako\u0144czony w ci\u0105gu trzech miesi\u0119cy, zg\u0142oszenie jest odrzucane. Aby kontynuowa\u0107, nale\u017cy zg\u0142osi\u0107 wtyczk\u0119 ponownie i odpowiedzie\u0107 na star\u0105 wiadomo\u015b\u0107. Skal\u0119 zjawiska pokazuje raport roczny za 2025 rok: w przypadku 38,7 procent sprawdzonych wtyczek autorzy nie odpowiedzieli.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/detailed-plugin-guidelines\/\" target=\"_blank\" rel=\"noopener noreferrer\">Detailed Plugin Guidelines<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/common-issues\/\" target=\"_blank\" rel=\"noopener noreferrer\">Common issues<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/plugin-developer-faq\/\" target=\"_blank\" rel=\"noopener noreferrer\">Plugin Developer FAQ<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/developers\/add\/\" target=\"_blank\" rel=\"noopener noreferrer\">Add your Plugin<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/planning-submitting-and-maintaining-plugins\/\" target=\"_blank\" rel=\"noopener noreferrer\">Planning, Submitting, and Maintaining Plugins<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/how-to-use-subversion\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to Use Subversion<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/plugins\/2024\/10\/01\/plugin-check-and-2fa-now-mandatory-for-new-plugin-submissions\/\" target=\"_blank\" rel=\"noopener noreferrer\">Plugin Check and 2FA Now Mandatory For New Plugin Submissions<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/updates\/2026\/09\/28\/plugins-team-28-sep-2026\/\" target=\"_blank\" rel=\"noopener noreferrer\">Plugins Team: 28 Sep 2026<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/updates\/2026\/09\/07\/plugins-team-7-sep-2026\/\" target=\"_blank\" rel=\"noopener noreferrer\">Plugins Team: 7 Sep 2026<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/plugins\/2026\/06\/13\/update-on-the-status-of-the-team-june-2026\/\" target=\"_blank\" rel=\"noopener noreferrer\">Update on the status of the team \u2013 June 2026<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/plugins\/2026\/01\/07\/a-year-in-the-plugins-team-2025\/\" target=\"_blank\" rel=\"noopener noreferrer\">A Year in the Plugins Team \u2013 2025<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/plugins\/2026\/09\/09\/automated-security-review-for-plugin-releases\/\" target=\"_blank\" rel=\"noopener noreferrer\">Automated security review for plugin releases<\/a>, dost\u0119p 29.09.2026<\/li>\n<li><a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/blob\/trunk\/src\/wp-includes\/class-wp-http.php\" target=\"_blank\" rel=\"noopener noreferrer\">class-wp-http.php (domy\u015blny User-Agent)<\/a>, dost\u0119p 29.09.2026<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>18 wytycznych Detailed Plugin Guidelines w czterech grupach, z kodem dla opt-in i link\u00f3w z podzi\u0119kowaniem, zasadami sluga oraz drog\u0105 od ZIP-a do pierwszego commita w SVN.<\/p>\n","protected":false},"author":1,"featured_media":20885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[92280,92762,92286],"class_list":["post-20853","post","type-post","status-publish","format-standard","hentry","category-wordpress-plugins-tricks-pl","tag-php-pl","tag-web-development-pl","tag-wordpress-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.\" \/>\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.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-03T17:44:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia\",\"datePublished\":\"2026-10-03T17:44:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/\"},\"wordCount\":2405,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/fi-20853-wytyczne-katalogu-wtyczek.png\",\"keywords\":[\"PHP\",\"Web Development\",\"WordPress\"],\"articleSection\":[\"Wtyczki i triki WordPress\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/\",\"name\":\"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/fi-20853-wytyczne-katalogu-wtyczek.png\",\"datePublished\":\"2026-10-03T17:44:00+00:00\",\"description\":\"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/fi-20853-wytyczne-katalogu-wtyczek.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/fi-20853-wytyczne-katalogu-wtyczek.png\",\"width\":1200,\"height\":630,\"caption\":\"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/wordpress-plugins-tricks-pl\\\/wytyczne-katalogu-wtyczek\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik","description":"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.","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.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/","og_locale":"en_US","og_type":"article","og_title":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik","og_description":"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-03T17:44:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia","datePublished":"2026-10-03T17:44:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/"},"wordCount":2405,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png","keywords":["PHP","Web Development","WordPress"],"articleSection":["Wtyczki i triki WordPress"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/","name":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png","datePublished":"2026-10-03T17:44:00+00:00","description":"Co sprawdza przegl\u0105d wtyczek na WordPress.org: GPL, trialware, zgoda przed \u015bledzeniem, linki na froncie, znaki towarowe w slugu i kolejka z wrze\u015bnia 2026.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/fi-20853-wytyczne-katalogu-wtyczek.png","width":1200,"height":630,"caption":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/wordpress-plugins-tricks-pl\/wytyczne-katalogu-wtyczek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Katalog wtyczek WordPress.org: za co odrzucane s\u0105 zg\u0142oszenia"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=20853"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20853\/revisions"}],"predecessor-version":[{"id":21066,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/20853\/revisions\/21066"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/20885"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=20853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=20853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=20853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}