Lowercase p, dangit!

## Metadata
- Author: [[archive.org]]
- Full Title: Lowercase p, dangit!
- Category: #articles
- Document Note: ---
tags: [#WordPress, #PHP, #CoreDevelopment]
- #WordPress
- #PHP
- #lowercasep
Author: [Justin Tadlock]
Source: [justintadlock.com]
Reference: [https://web.archive.org/web/20110110100858/http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit]
date created: 2024-10-24 12:00
---
# Title: Lowercase p, Dangit!
## Table of Contents:
- [📝 Summary](#-summary)
- [📖 Main Content](#-main-content)
- [🗒️ Notes](#-notes)
- [📖 References](#-references)
- [🗣️ Paraphrase](#-paraphrase)
- [📰 Newsletter](#-newsletter)
- [✅ Action Items](#-action-items)
- [🧪 Hypotheses](#-hypotheses)
- [📊 Methodology](#-methodology)
- [❓ Questions](#-questions)
- [🔮 Future Research](#-future-research)
- [💡 Implications](#-implications)
- [🧠 Learning Styles Assessment](#-learning-styles-assessment)
- [📊 Accessibility Assessment](#-accessibility-assessment)
- [🌍 DEIB (Diversity, Equity, Inclusion, and Belonging) Assessment](#-deib-diversity-equity-inclusion-and-belonging-assessment)
- [✅ Logical Validity](#-logical-validity)
- [🔍 SEO Evaluation](#-seo-evaluation)
- [🎯 Conclusion](#-conclusion)
## 📝 Summary:
The article "Lowercase p, Dangit!" by Justin Tadlock discusses a small but important function in WordPress that automatically corrects the incorrect capitalization of the word "WordPress." Specifically, it changes “wordpress” to “WordPress” across the site to ensure that the brand's identity remains consistent. Tadlock explains the reasoning behind this function and how it contributes to the integrity of the WordPress brand, despite being a source of controversy among developers who dislike automatic text modifications.
## 📖 Main Content:
The lowercase p function in WordPress is a prime example of how small details can affect brand consistency. Justin Tadlock explains that while the function may seem trivial, it serves to maintain the professional representation of the WordPress brand by ensuring that its name is always capitalized correctly. The article covers the technical background of the function, its implementation in PHP, and some developer backlash due to it being perceived as an unnecessary intervention in user-generated content.
### 🗒️ Notes:
- **WordPress branding**: WordPress has strict branding guidelines, which include the correct capitalization of its name.
- **Functionality**: The `capital_P_dangit()` function was added to the WordPress core to automatically correct “wordpress” to “WordPress.”
- This affects posts, titles, and content across a WordPress site.
- **Developer controversy**: Some developers argue that this function is an overreach, infringing on user autonomy in content creation.
- **PHP implementation**: The function is a simple PHP-based string replacement but serves a larger purpose for brand consistency.
## 📖 References:
- Justin Tadlock, [Lowercase p, Dangit!](https://web.archive.org/web/20110110100858/http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit)
## 🗣️ Paraphrase:
1. The article highlights a subtle but impactful change in WordPress that ensures the brand’s name is always correctly capitalized. Through the `capital_P_dangit()` function, WordPress automatically corrects instances of “wordpress” to “WordPress” in posts and titles.
2. Some developers express frustration at this function, viewing it as an unnecessary intervention that limits user control over content. However, the function’s main goal is to protect the integrity of the WordPress brand.
## 📰 Newsletter:
In WordPress, even the smallest details matter! Did you know that WordPress automatically corrects “wordpress” to “WordPress” across your site? This little-known function, `capital_P_dangit()`, helps maintain brand consistency, ensuring that the name "WordPress" is always displayed properly. Though some developers aren't fans of automatic text changes, it highlights how WordPress values its branding and presentation. Read more about how this function works and why it sparked debate among developers! [Link to full article](https://web.archive.org/web/20110110100858/http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit).
## ✅ Action Items:
As a Developer Advocate for GoDaddy, this article reinforces the importance of consistent branding, even in seemingly minor areas like content formatting. It’s essential to communicate these values to both developers and contributors within the open-source community. Highlighting such small but meaningful contributions to WordPress core helps convey how every part of the platform is aligned with a larger purpose—fostering a professional and recognizable brand.
## 🧪 Hypotheses:
1. Developers are likely to react negatively to automated content modifications if they feel it infringes on their creative control.
2. Maintaining brand integrity, even through small interventions like correcting capitalization, contributes to the long-term success and recognition of open-source projects like WordPress.
### 📊 Methodology:
- Conduct surveys to understand how developers feel about automated branding-related interventions.
- Analyze usage data to see if users try to override or disable the `capital_P_dangit()` function.
### ❓ Questions:
- How important is brand consistency in an open-source project?
- Should developers have the option to override automated brand-related changes in WordPress?
### 🔮 Future Research:
- Explore how other open-source projects handle brand consistency in content.
- Investigate whether brand-related corrections impact user experience or lead to backlash in other open-source communities.
### 💡 Implications:
Ensuring brand consistency, even through automated functions, reflects the broader need for professionalism and brand awareness in the open-source ecosystem. For advocates and OSPO leaders, this case can guide discussions on how to balance developer autonomy with brand guidelines.
### 🧠 Learning Styles Assessment:
1. **Visual Learners (Spatial)**:
- **Improve**: Add visual aids or flowcharts to explain the flow of the function and its effect on WordPress content.
2. **Aural Learners (Auditory-Musical)**:
- **Improve**: Consider adding an audio explanation of why brand consistency matters in open-source platforms.
3. **Verbal Learners (Linguistic)**:
- **Present**: The article is rich in descriptive language, explaining the reasoning behind the function.
4. **Physical Learners (Kinesthetic)**:
- **Improve**: Provide an example for readers to test out the function on their own sites.
5. **Logical Learners (Mathematical)**:
- **Present**: The technical breakdown of the function’s PHP implementation appeals to logical learners.
6. **Social Learners (Interpersonal)**:
- **Improve**: Include community discussions or forums where developers debate brand control and content freedom.
7. **Solitary Learners (Intrapersonal)**:
- **Improve**: Offer reflection questions on personal views of brand consistency versus content freedom.
8. **Naturalistic Learners**:
- **Improve**: Provide analogies connecting brand consistency in digital environments with consistency in nature (e.g., patterns in ecosystems).
### 📊 Accessibility Assessment:
- **Screen Reader Compatibility**: Ensure that all code snippets are properly formatted for screen readers.
- **Improve**: Add descriptive alt-text for any images that may demonstrate the function.
- **Keyboard Navigation**: Verify that the article is fully accessible via keyboard shortcuts.
- **Improve**: Optimize for keyboard navigation to enhance accessibility for developers with disabilities.
- **Contrast and Readability**: Ensure that text and background colors meet accessibility standards for contrast.
### 🌍 DEIB (Diversity, Equity, Inclusion, and Belonging) Assessment:
- **Cultural Relevance**: The article focuses on a technical issue, but could expand by including more global perspectives on brand enforcement.
- **Inclusive Language**: The language is neutral and focused on functionality.
- **Improve**: Broaden the conversation to include diverse developer perspectives, especially those from non-Western countries where branding practices may differ.
- **Neurodiversity Support**: The structure is clear but could benefit from breaking longer paragraphs into smaller, digestible chunks.
- **Improve**: Use bullet points or visual breaks to aid neurodiverse readers in navigating the content.
### ✅ Logical Validity:
- **Sound Reasoning**: The author logically presents the case for why WordPress enforces brand consistency through the `capital_P_dangit()` function.
- **Coherent Counterarguments**: The article acknowledges the objections raised by developers who view this intervention as overreach, making the analysis balanced.
### 🔍 SEO Evaluation:
1. **Keywords**:
- **Present**: “WordPress,” “lowercase p,” “PHP function.”
- **Keyword Placement**: Effectively placed in the title, introduction, and throughout the content.
2. **Meta Description**:
- **Improve**: Add a concise meta description that includes the keyword “WordPress function.”
3. **Title Tag**:
- **Optimize**: Keep the title concise while including the key term “WordPress branding.”
4. **Headers (H1, H2, H3)**:
- **Present**: Headers are well-structured for easy navigation.
5. **Content Length**:
- **Present**: The article is appropriately lengthy for its subject matter.
6. **Internal and External Links**:
- **Improve**: Add internal links to related posts about WordPress functions.
7. **URL Structure**:
- **Present**: The URL is simple and clean, improving its SEO performance.
8. **Image Optimization**:
- **Improve**: If applicable, optimize any images with alt-text and relevant keywords.
9. **Mobile Optimization**:
- **Present**: The content is mobile-friendly, ensuring readability across devices.
10. **User Engagement**:
- **Improve**: Encourage more user comments or interaction via polls about developer opinions on automated branding.
11. **Schema Markup**:
- **Improve**: Implement schema markup to enable rich snippets in search results.
12. **Social Sharing**:
- **Present**: The article could benefit from prominent social sharing buttons.
## 🎯 Conclusion:
The `capital_P_dangit()` function in WordPress is a small but meaningful step toward ensuring brand consistency, helping to maintain the professional image of the WordPress brand across millions of sites. While some developers critique it for limiting content control, the function underscores the importance of enforcing standards in an open-source project, ensuring that even minor details reflect the platform’s identity.
- Document Tags: [[wpdrama]] [[wordpress]]
- Summary: If you haven’t been following the latest hot debate in the WordPress community, you’re in for some news.
- URL: https://web.archive.org/web/20110110100858/http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit
If you haven’t been following the latest hot debate in the WordPress community, you’re in for some news. If you have been following it, you’re probably in a fiery rage, given up all hope in the “community” aspect of this community project, or are just sitting back laughing at the rest of us.
*The issue*: Before WordPress 3.0 was released, a small piece of code was added to the WordPress core that changes all instances of “Wordpress” (notice the lowercase “p”) to “WordPress” in areas where content is shown on the site. We’ll get to the details in a bit.
I tried hard to stay out this debate because I’m fairly certain I made a vow to myself to stay out of these types of arguments. But, I’ve got a few opinions on this one that I can’t just keep to myself. And, as someone that is considered a *leader* within the WordPress community, I feel responsible for communicating with that community on this issue.
#### It’s spelled “WordPress”
[WPCamelCase.com](https://web.archive.org/web/20110110100858/http://wpcamelcase.com/) says so, and I’d never question an entire site dedicated to the proper spelling of a single word.
On a more serious note, these are not proper:
* Wordpress
* wordPress
* wordpress
* Word Press
* word press
* wordress
* WoRdPrEsS
Coming from an English and journalism (especially journalism) background, I feel a strong need to hack into the site of anyone that misspells WordPress and correct it for them. Fortunately, I don’t know how to hack people’s sites, have just a smidgen of self control, and respect the rights of others.
#### Why is there an issue?
Matt Mullenweg wrote a filter function called `capital_P_dangit()` that correctly capitalizes the “P” in misspellings of WordPress where the “p” is lowercase. It may seem like a minor thing, but there are several issues at hand.
* The code literally breaks things like URLs on some sites. For example, suppose you installed WordPress in a `/Wordpress` directory. That would cause all kinds of trouble with things like images.
* This function is effectively changing what people write, and WordPress should not have editorial control over the content of anyone’s blog.
* The code was [committed to WordPress](https://web.archive.org/web/20110110100858/http://core.trac.wordpress.org/changeset/14996) without a Trac ticket, so it wasn’t left open to community discussion beforehand.
* Matt’s responses seem to dismiss the very community of people that help make WordPress what it is.
#### Following the discussion
I cannot accurately represent all of the discussion that has happened to this point. I highly recommend that you read the discussions provided by the below links if you want all the details.
* [“Wordpress” being turned into CamelCase “WordPress” breaks URLs](https://web.archive.org/web/20110110100858/http://core.trac.wordpress.org/ticket/13971)
* [Putting the P in WordPress: WP Hackers](https://web.archive.org/web/20110110100858/http://lists.automattic.com/pipermail/wp-hackers/2010-July/thread.html#32841)
* [Automatically Correcting the WordPress Mistake](https://web.archive.org/web/20110110100858/http://www.wptavern.com/automatically-correcting-the-wordpress-mistake)
* [Wordpress -> WordPress in core?](https://web.archive.org/web/20110110100858/http://www.wptavern.com/forum/general-wordpress/1745-wordpress-wordpress-core.html)
* [MattPress Egomania](https://web.archive.org/web/20110110100858/http://hakre.wordpress.com/2010/07/07/wordpress-egomania/)
* [“Wordpress” to “WordPress” filter](https://web.archive.org/web/20110110100858/http://tomlany.net/2010/05/wordpress-to-wordpress/)
* [A Fuss About Nothing](https://web.archive.org/web/20110110100858/http://www.misthaven.org.uk/blog/2010/07/07/a-fuss-about-nothing/)
* [CapitalP.org](https://web.archive.org/web/20110110100858/http://capitalp.org/)
#### Breaking URLs
If nothing else, this issue must be addressed. In fact, this bug was brought up in a [bug report](https://web.archive.org/web/20110110100858/http://core.trac.wordpress.org/ticket/13583) *before* WordPress 3.0 was released. Yes, before.
The resolution set for this bug: *wontfix*.
A [new ticket](https://web.archive.org/web/20110110100858/http://core.trac.wordpress.org/ticket/13971) is now open for discussion and resolutions. Mark Jaquith has at least created a patch that should fix this issue.
#### Don’t change my content
The *real* issue is not the bug; it’s the display of content that people didn’t write. Sure, the cases where people actually intend to misspell WordPress are rare, but that’s besides the point.
The point is that the content is yours, and you should be able to write anything any way you see fit, including “WordPress.”
If you want to debate that last statement in any way, I suppose you can try all you want, but I can’t think of a single reason why a piece of software should be able to control the output of my words without consent.
We’re talking about principles here, and changing what people write in this manner goes against everything I believe in. I simply refuse to allow this on my site.
One of the reasons I use WordPress is because of its philosophy on community, openness, and freedom, which fits along nicely with my own personal philosophy about most things in life. The idea that a piece of software could infringe upon those values is what bothers people.
#### What about emoticons and auto-paragraphs?
*What about apples and oranges?*
This line of *reasoning* keeps getting brought up in the debate.
If you think the forced spelling of a word and the opt-in process of converting smileys and basic word-processing are one in the same, there’s no convincing you there’s an issue. You may as well stop reading now.
#### Why don’t you build a plugin?
According to Matt Mullenweg, [a plugin should be built](https://web.archive.org/web/20110110100858/http://lists.automattic.com/pipermail/wp-hackers/2010-July/032900.html):
> As I said before, you are in /complete control/ of your site. It’s a single line to remove a filter. If you don’t like the filter, vote with your feet or with a plugin.
>
>
*Vote with your feet?* This type of remark represents one of the biggest issues in the WordPress community. Attitudes like this can bring down entire empires.
I completely agree with the plugin idea though. Building plugins to gauge community interest in certain features and making the decision to include these plugins in core code based on statistics is a great idea.
As [pointed out](https://web.archive.org/web/20110110100858/http://www.wptavern.com/automatically-correcting-the-wordpress-mistake) by Jeff Chander, it just so happens that someone made a plugin nearly three years ago that does the same job as `capital_P_dangit()`. It’s called [Ozh’ Correctly Spell WordPress](https://web.archive.org/web/20110110100858/http://wordpress.org/extend/plugins/ozhs-correctly-spell-wordpress/).
At the time of writing, this plugin has received a grand total of…wait for it…338 downloads!
As flawed as that argument is, a new plugin has been created called [Remove Wordpress to WordPress Filter](https://web.archive.org/web/20110110100858/http://wordpress.org/extend/plugins/remove-wordpress-to-wordpress-filter) that disables the `capital_P_dangit()` functionality. Funnily enough, its number of downloads will likely surpass the other plugin within a week or two given its current rate of adoption.
But, since we’re voting with plugins, there’ll be [16 other plugins](https://web.archive.org/web/20110110100858/http://wordpress.org/extend/plugins/profile/greenshady) that will disable this filter soon enough. All of my plugins will have this bug fix added to them in their next updates.
There’s two things that will make me reconsider this decision and remove this from my plugins:
* The `capital_P_dangit()` function is removed from the default filters or made to be opt-in.
* An outcry of arguments from my plugin users to remove it. Some of us *listen* to our users, even when we disagree with them.
Since some folks have missed the point of this last argument, which I thought was clever (though I’m a bit biased), I must inject a note here to interrupt the flow of this article. **No**, I don’t actually intend to update all 16 of my plugins to try and prove a point. The entire point is to show how irrational such an action would be.
#### How to remove the capital\_P\_dangit() filter
You can either install the [Remove Wordpress to WordPress Filter](https://web.archive.org/web/20110110100858/http://wordpress.org/extend/plugins/remove-wordpress-to-wordpress-filter) plugin or add the below code to your theme’s `functions.php` file.
```
remove_filter( 'the_content', 'capital_P_dangit' );
remove_filter( 'the_title', 'capital_P_dangit' );
remove_filter( 'comment_text', 'capital_P_dangit' );
```
#### Listen to your community
I’ve only seen a handful of people that agree this function should be in WordPress. It has been met with harsh opposition. The people arguing to remove this function are people we need in the community. They’re plugin developers, theme developers, contributors to core code, and evangelists for the WordPress platform. These are the people that continue making WordPress better.
Don’t alienate them.
Are these people only a vocal minority of WordPress users? Certainly. However, these people speak for a larger amount of users. For users without the knowledge of mailing lists. For users without the understanding of how Trac works. They are the people that interact with the majority every day. They are the voice of the majority.
Don’t let their voices go unheard.
Tagged [WordPress](https://web.archive.org/web/20110110100858/http://justintadlock.com/tags/wordpress), [WordPress Discussion](https://web.archive.org/web/20110110100858/http://justintadlock.com/tags/wordpress-discussion), Lowercase p, dangit!, archive.org, 01jazzs4vrst91enbg06s1070z.