Work With WordPress Not On WordPress

“Working with WordPress” and “Working on WordPress” may seem synonymous but the philosophy of each phrase will definitely affect the code you share and support going forward.

When you work with something, it becomes a partnership, a collaboration, a team effort and more often than not an ongoing relationship; while working on something is more like getting it done and moving on … like fixing a car.

All of the major functionalities of most any application, plugin, theme idea can be found in WordPress core code already, the key is in the creative implementation of that code.

Obviously you may need to add some custom code to accomplish building your idea or adjust some specific functionality to be applied differently but that is also the basis behind using the various API and hooks readily available in WordPress. You just need to extend where needed and fine tune the rest. It’s WordPress … anything is possible!

It’s all there for the … taking. Yes, you can take the code and use it as you see fit, just remember to give credit where credit is due and provide the proper attributions.

Not sure where to find something, or even if it exists? Try these developer references:

Maybe you just need a nudge in the right direction? Have you tried any of the numerous Slack channels where many WordPress community members share their time and thoughts (not to mention ongoing development conversations)?

Stay in touch with what is happening with WordPress development, too. Keeping up with new functionality and corrections to core will only benefit you in the long-run. It might even spark an idea using some new functionality being added to core.

As you continue to improve your own WordPress projects, especially with a community of thousands contributing back to it, you will most likely need to build less and less on WordPress while moving to building more and more with WordPress. You may even be one of those contributors that makes life easier for another WordPress developer.

Why work on something, some might even say re-inventing the wheel, when you can simply get behind the wheel and start driving with WordPress from the start … or work with WordPress and help others get the start they may need to bring their awesome ideas to life.

I will always advocate working with WordPress, what are your thoughts?

wp_get_shortlink() Should Always Return a URL

It was about two years ago that I noticed there was a minor issue with how wp_get_shortlink handled things with the default permalink structure. This is what I wrote in my original ticket:

Currently the code used in the link-template.php file causes the wp_get_shortcode function to return an empty result if the WordPress installation is using the default permalink structure. This causes at least issues with the_shortcode function and can be expected to cause issues any place that wp_get_shortcode is called when the default permalink structure is being used.

Obviously this was not a pressing issue but it was fixed on the 25030 Changeset. Props went out to sillybean, layotte, and cais (me!).

Empty Page Title Not Handled in Menu System

Empty Page Title Not Handled in Menu System” seemed to cover what I found about five months ago (as of this writing according to the WordPress Trac system). Simply put, if you had a page without a title and you used that page in your WordPress navigation menu you could expect to have some issues with its display.

Several comments later; a commit by Mark Jaquith today; and, these issues are well taken care of now … cool! I’m happy to have been part of the process.

Add WordPress Required Version and Tested Up To Version

I just made my second submission to the WordPress Core Trac with the summary above. Here is a link to the new ticket #16868 … and here is the description:

The premise of this idea is for Theme authors to be able to add a reference to the version of WordPress their Theme requires to work correctly; and, the version of WordPress the Theme has been tested up to. This idea comes from the the plugin readme.txt file and some of the data that is expected to be found there.

Once implemented, further enhancements to the Appearance tab in the Administration Panels can be added to better inform end-users on the compatibility of the Theme with their current WordPress installation.

This is essentially an extension of my previously submitted ticket #16395 to “Add ‘Template Version’ for use with ‘Template’ in Child-Themes” I wrote about here.

WPTRT Permission Sets

Another new development with the WordPress Theme Review Team (WPTRT) is the additional responsibility of managing the Theme Trac system. Below are the basic permission sets, with links to the Trac wiki for additional details. Currently there are four basic sets in the following top-down order:

  • reviewer-manager
    • PERMISSION_ADMIN – All PERMISSION_* permissions

  • reviewers
    • TICKET_CREATE – Create new tickets

       (also allows for the re-opening of tickets)

      TICKET_MODIFY – Includes both TICKET_APPEND and TICKET_CHGPROP, and in addition allows resolving tickets. Tickets can be assigned to users through a drop-down list when the list of possible owners has been restricted.

      • TICKET_APPEND – Add comments or attachments to tickets

        TICKET_CHGPROP – Modify ticket properties (priority, assignment, keywords, etc.) with the following exceptions: edit description field, add/remove other users from cc field when logged in, and set email to pref

  • authenticated
    • TICKET_APPEND – Add comments or attachments to tickets

      TICKET_EDIT_CC – Full modify cc field

      WIKI_CREATE – Create new wiki pages

      WIKI_MODIFY – Change wiki pages

  • anonymous
    • MILESTONE_VIEW – View milestones and assign tickets to milestones.

      REPORT_SQL_VIEW – View the underlying SQL query of a report

      REPORT_VIEW – View reports, i.e. the "view tickets" link.

      ROADMAP_VIEW – View the roadmap page, is not (yet) the same as MILESTONE_VIEW, see #4292

      SEARCH_VIEW – View and execute search queries

      TICKET_VIEW – View existing tickets and perform ticket queries

      TIMELINE_VIEW – View the timeline page

      WIKI_VIEW – View existing wiki pages

      Repository Browser – ALL Views


The above permissions are based on a standard installation of Trac with the addition of the user groups: reviewer-manager and reviewers. The reviewer-manage group consists of Simon Prosser and myself. The reviewers group will consist of those users who have been actively participating in Theme reviews and consistently following the Theme Review page guidelines and standards as the basis for their review comments.

The authenticated group is all users who are logged in. To log in just use your WordPress.org username and password. This is essentially the default group and will allow logged in users to make comments on tickets. This provides authors and other interested individuals the ability to use the Trac system to communicate their concerns, questions, or complaints in regards to their relevant ticket(s). This will also allow for new users to become involved with the Theme Review Team as well. Although this group does not have permission to resolve tickets they are more than able to do a full review and participate in the process.

The anonymous group simply allows for all the relevant viewing permissions so you can look around and read without having to log in.

As an aside, I developed the above list with the help of the Mindmap software Freeplane, if you are interested in a copy of the mindmap download this file. (You may have to right-click and Save Link As … with a .mm extension.)