❌

Normal view

Five review rounds at wordpress.org, and the four things that actually cost me time

26 September 2026 at 18:47

I submitted my first plugin to the wordpress.org directory at the end of August and it was approved on 8 September, after five rounds. Almost none of the delay was code quality. Writing it down because most of what held me up is the kind of thing you only find out when it happens to you.

1. The name was rejected twice, and that cost the most

The first submission was auto-rejected within a second: a display name or permalink cannot begin with "wp". Fine, I renamed.

The second attempt cleared the automated scan and then a human turned it down. "Toolkit" is a generic description, and "Ultimate" is a promotional modifier rather than a distinctive identifier. Two lines in that reply were worth the whole round:

  • "The absence of an exact match in the directory does not make the name distinctive." Checking that your name is free is not the test.
  • "Other published plugins do not set a precedent for this submission; some were accepted under earlier standards." I had a list of near-identical names approved as recently as last year. It does not count.

What passes is a coined word or a personal/brand identifier, and it has to be at the front, not the back. I ended up inventing one. Remember that the slug is permanent while the display name is not, so keep the slug short and brandable and put the descriptive part in the name.

2. Your prefix has to be more than four characters

Mine was three. That meant renaming namespaces, constants, option names, post type slugs, hooks, script handles and every public template function. Do it before you submit. If your plugin is already out there, this is a breaking change for everyone who uses it.

A trap I hit doing that rename, and this one applies whether or not you ever submit anything: WordPress builds a submenu page's screen ID from the menu title, not the slug β€” sanitize_title( $menu_title ) . '_page_' . $submenu_slug. I had that prefix hardcoded in 31 comparisons. After the rename not one of them matched, so every admin screen of the plugin lost its CSS and JS. No error, no warning, php -l clean. It just looked like the styling had evaporated.

3. You can no longer ship an editor for arbitrary CSS, JavaScript or PHP

I had a code snippets feature. The reply was blunt: plugins that let users save arbitrary custom CSS, JS or PHP are not accepted, please remove it.

I asked whether a CSS-only version would be acceptable, since that is narrower than what the Customizer already offers. No, and they named the Customizer as exactly the reason CSS is covered too.

If you have that feature, plan for it not existing in your free version at all.

4. Escaping happens at the point of output, and nothing goes inline

52 notices, two patterns behind them.

Escape where you echo, not where you build. A helper that escapes attributes earlier in the chain does not count, even when it is provably safe. I annotated 105 of those in one directory and proved the rendered HTML was byte-identical before and after, which is a good way to convince yourself you did not break anything while touching a hundred files.

Every <style> and <script> goes through the enqueue chain. I argued for one exception, an engine that printed CSS on wp_head at priority 99 so user CSS would land after the theme, and I was wrong: enqueuing at priority 999 keeps exactly the same order.

Two exceptions I explained in my reply and that survived: a block render callback returning HTML the theme developer wrote themselves, and a standalone page that builds a whole document and exits, the way core's wp_die() does.

Two things I broke myself while fixing the above

  • **sanitize_text_field() strips percent-encoded characters.** /caf%C3%A9/ comes back as /caf/. Harmless on REMOTE_ADDR, fatal on a URL path: a redirect or a route with a non-ASCII slug silently stops matching, and nothing errors. Use esc_url_raw() for anything that is a URL. I introduced this by following the review instruction literally instead of choosing the function that fits the value.
  • Core owns the id {metabox-id}-title. It gives every metabox heading that id. My box was ultivo-seo and my own title input was ultivo-seo-title, so two elements shared an id and getElementById returned the <h2>. The character counter sat at 0/60 with text in the field, and the live preview never followed that input. It went unnoticed for months because the field right below it had no collision.

One more, if your URIs point at your own domain

If the Author URI or Plugin URI is a domain that is not obviously connected to the email you registered with, they will ask you to prove you own it. A TXT record on the root is enough. Add it next to your SPF record: a root domain can hold several TXT records, and replacing the SPF one instead of adding to it breaks your mail.


None of this is a complaint. The reviewers were right on every point except the one where I pushed back and lost, and the plugin is better for it. But if I had known the name rule and the prefix rule before submitting, I would have saved about two weeks.

The plugin was Ultivo Toolkit, if anyone wants to see what came out the other end. Not linking it, that is not what this post is for.

submitted by /u/Neat-Bumblebee9430
[link] [comments]

[PROMO] Quill 2.0: A Free, Modern WordPress Client for macOS

26 September 2026 at 15:49

I wanted to share my application for WordPress on macOS. I worked on a 1.x version for a long time but decided the app should have full Gutenberg compatibility and a native macOS feel. I also decided to make the GitHub repo public if anyone had questions about the architecture/privacy. I just wanted a free, no-frills Mac app that I wanted to use for WordPress. Keep in mind the app only supports self-hosted WordPress.

https://quill.siolon.com

submitted by /u/cpoteet04
[link] [comments]

WORD PRESS IS NOT WORKING ON MY WEBSITE

26 September 2026 at 14:46

Wordpress is impossible to wor wit .I have contacted their"customer service AI" over and over again for the last month. My payment is up to date, but I cannot edit or change anything on my website! Is there a human being out there who can help me? It is really hurting my business.

submitted by /u/Mambogal54
[link] [comments]

How do you quote a website when the client doesn’t know what he need?

26 September 2026 at 11:05

I find it harder than quoting a project with a detailed brief.

Sometimes a client knows they need a new website, but once you start asking about what he actually needs, there are still a lot of unanswered questions.

providing a fixed quote too early can backfire, but asking technical questions before giving any indication of cost can also lose the client.

How do you approach pricing when the scope is unclear?

submitted by /u/TechyTilak
[link] [comments]

Anchor link is acting wonky

26 September 2026 at 08:40

Weird thing happening with a very basic anchor link on jim-flannery.com/music

Clicking "Watch" doesn't bring you down to the appropriate position on a mobile device. Yet, if you then scroll back up and click it a second time, it is correct.

No idea why this is inconsistent, seems like the only anchor link on the site doing this and there's quite a few.

submitted by /u/Old-Dirt563
[link] [comments]

appmysite ! Extremely Disappointing and Unacceptable Experience with AppMySite

26 September 2026 at 01:01

After opening an account with AppMySite, I experienced what I consider an extremely misleading and frustrating process, including constant stalling, lack of support, wasted time, and an arrogant attitude. After paying for the service, the level of support and service I received was completely unacceptable. This was an extremely disappointing and trust-destroying experience, and I absolutely do not recommend this company.

submitted by /u/AssistAdmirable8785
[link] [comments]

[PROMO] I built a free scroll-depth plugin after realising pageviews told me nothing about whether anyone read my posts

26 September 2026 at 06:01

I write on my own blog and kept running into the same gap: a post would show 4,000 pageviews and I still had no idea whether anyone got past the intro. GA4 can track scroll, but by the time the number reaches me it has been through consent gating and sampling, and I wanted the raw rows somewhere I control.

So I wrote a small plugin for it. It's free on wp.org, GPL, no pro version, no account, no signup screen: https://wordpress.org/plugins/ango-scroll-analytics/

What it does: one script on single posts and pages. It records how far the page was scrolled per visit, and gives you visits, average, median and percentiles 5/10/25/50/75/90/100 on a wp-admin screen β€” phrased as "25% of visitors scrolled at least to X% of the page".

Three deliberate decisions, one of which will annoy somebody:

  1. It measures depth through the scrollable height of the page, not the share of the article text. A short post that fits on one screen records 100%. That's why the numbers won't match your analytics tool.
  2. A visit with zero scrolling still counts, as 0%. The percentiles describe everyone who arrived, not only the people who read to the end. There is a filter that drops "load-and-die" visits β€” page loads that never sent anything after the initial beacon, which on a live site are mostly bots and link previews β€” and it's on by default.
  3. Your own logged-in visits aren't tracked. I added that after my own refreshing had quietly wrecked my first week of percentiles.

Everything sits in one table in your own database. The front-end script is ~2 KB gzipped, the endpoint is rate limited, no IPs are stored, Chart.js is bundled so wp-admin makes no external request, and deleting the plugin deletes its data.

Caveats, since you'd find them anyway: it went up on wp.org five days ago and I'm the only person who has used it in anger. It does no funnels, heatmaps or sessions and can't tell you why people leave. Stats are computed on the fly, so at hundreds of thousands of visits it would want caching β€” a normal blog won't notice.

Happy to answer anything about how the measurement works, including the parts that are my opinion rather than fact.

submitted by /u/ganrage
[link] [comments]

WORDPRESS | Autenticazione CDN anche se non Γ¨ presente

26 September 2026 at 05:44

Ciao a tutti,

sono tre gg che sto impazzendo dietro a questo problema. Ho un sito con Elementor – Tema Otaku che, quando si collega un MAC DESKTOP, gli compare la schermata di autenticazione cloudflare.
Questa anomalia accade SOLO su mac desktop. Da mobile (IOS e Android) e WIN DESKTOP non ho nessun problema.
Il sito non ha nessun collegamento a Cloudflare.
Mercoledì il cliente mi segnala che aveva dei problemi e trovo un malware. Lancio da Cpanenl lo scan e intanto lo pulisco manualmente.
Ho installato sia Sucuri che Wordfence e non gli risulta nessuna anomalia.
Ho rifatto lo scan con Cpanel ed Γ¨ tutto ok. Ho fatto fare un controllo al fornitore dell’hosting ed Γ¨ tutto ok.
Come ultima mossa ho ripristinato il core e files di WP (mantenendo solo wp-config.php e wp-content) ma l’anomalia rimane.
Ho chiesto all’AI ma non mi ha dato altre soluzioni.

Avete qualche soluzione?

submitted by /u/Aggressive_Home_6878
[link] [comments]

How can I hide sections of a page to users other than windows visitores on wordpress?

26 September 2026 at 03:57

I have a page with an artical, at the bottom of that page I would like to post an image with a link that useres visiting the page on mobile devices or desktops other than windows don't see. I tried a JavaScript snippet but it returns an error in functions.php when trying to save it.

the snippet:

document.addEventListener("DOMContentLoaded", function() {

const isWindows = navigator.platform.indexOf("Win") !== -1 || navigator.userAgent.indexOf("Windows") !== -1;

if (isWindows) {

const targetElement = document.getElementById("windows-only-content");

if (targetElement) {

targetElement.style.display = "block";

}

}

});

how can i get a better solution?

submitted by /u/Sure_Strike9872
[link] [comments]

How cost-effective are fully custom WordPress builds for clients in the long run?

26 September 2026 at 00:37

How cost-effective are fully custom WordPress builds for clients in the long run?

On the one hand, the benefits are pretty clear: better performance, much more flexibility in design and functionality, cleaner code, and less dependence on third-party plugins (maybe using only couple official like woocommerce and so on).

On the other hand, custom builds can make maintenance more complex and expensive. With a typical plugin-based site, you can often update plugins, test the main flows, and move on. With a more custom-coded setup, even a seemingly small update can require proper staging, regression testing, and QA to make sure nothing breaks.

That obviously increases the cost of ongoing maintenance for the client.
So where do you draw the line?

At what point do the performance, flexibility, and reduced plugin dependency justify the higher maintenance cost and complexity?

For those of you building custom WordPress sites for clients, how do you approach this trade-off, and what types of clients/projects do you think actually benefit from going fully custom?

submitted by /u/Far_Appearance_8234
[link] [comments]
❌