wecobble / Subtitles

Add subtitles into your WordPress posts, pages, custom post types, and themes. No coding required. Simply activate Subtitles and you're ready to go.
http://wordpress.org/plugins/subtitles/
GNU General Public License v2.0
117 stars 186 forks source link

Global $id should not be used #4

Closed joshlevinson closed 10 years ago

joshlevinson commented 10 years ago

You left some pretty good comments on why you want to check that the global $id is available, but according to this ticket on trac, usage of the $id is frowned upon. It's also not listed on WordPress' list of global variables. Is there something else you can use to check the placement of the post?

philiparthurmoore commented 10 years ago

Context. The reason I've used this, as you saw, is because titles in navigation menus were getting borked when I didn't run a check against $id. If I'm on a single post or page with a subtitle, then it keeps showing up in the navigation menu (if the same post or page title is present) unless I run that check. I cribbed it from setup_postdata, but looking at that function now the variable is simply using $id = (int) $post->ID;. Let me see what I can come up with. I remember using a vanilla $post->ID not working so well but let me re-verify.

joshlevinson commented 10 years ago

Awesome! Thanks for your quick attention, and for providing the context—which apparently slipped my mind when posting.

philiparthurmoore commented 10 years ago

I'm now unable to reproduce any need for having $id checks in Subtitles, so I've removed this check from the plugin. If users report that subtitles show up erroneously in their navigation menus, then I will need to revisit this. But for now, I think the present checks in place, especially the in_the_loop check that takes place, is more than adequate enough to make sure that subtitles aren't used in nav menus. The only way this would come up is if someone used a navigation menu within The Loop, which isn't good and not something that we'd want to encourage anyway.