WordPress.org

Make WordPress Core

Opened 13 years ago

Closed 11 years ago

Last modified 11 years ago

#9015 closed task (blessed) (fixed)

New theme for 3.0 -- Twenty Ten

Reported by: dd32 Owned by:
Milestone: 3.0 Priority: normal
Severity: normal Version:
Component: Themes Keywords:
Focuses: Cc:

Description

Spurred on by the discussion of Sandbox coming up again on wp-hackers, Its lead me to think about the themes issue.

Currently, The bundled themes are not exactly the simplest to modify, Well, They are, But they either end up with dodgy results, Similar looking, Or just plain ugly.. This leads many users to attempt to find another theme to use, and customize, This is all good, But there are a few problems with the majority of themes:

  • Complex HTML Structure
  • Complex CSS Hacks
  • Backwards compatible
  • Use code from older WordPress versions (ie. I picked up a theme a few days ago, Which used things deprecated in 2.2, yet required 2.7 functionality)
  • Just plain ugly code

So, What i'm proposing, Is that instead of including a current generation base them such as Sandbox (Or the many others that escape my mind right now)
Is that the WordPress Project aims to create a new theme, Which is Simple, Stylish, Clean code, Uses the latest features, And most importantly, Is easy for new developers to customise to their own requirements. At first, This probably sounds like yet another sandbox, But the idea behind it, Is to provide a platform which people can base their work from, Full well knowing that it uses the latest practices, Explains what its doing, and how its doing it, A Community effort, Not a single person (Or a small group of people)'s opinions on how to do it.

Kubrick isn't bad, It does look OK, and it IS a good theme, But its not the best for people to be basing their new themes off.

New theme developers (And current developers even), Need something which they can rely upon.

So a theme which:

  • Uses clean markup
  • Has a basic style included, Which is designed to be replaced.
    • The default style should be able to be used by itself, But it should be in such a way that its simple to be customised
  • Doesn't rely upon fixed width styling, or fixed background images
  • Uses limited JavaScript
  • Uses the Theme api correctly
    • comments_option() instead of 'open' == $post->comment_status
    • post_class(), etc.
  • Look good even when the user modifies the theme slightly (ie. changes widths or floats an item)
    • I realise it's impossible if they're changing it, But a simple small change should not break everything, It should be designed with the purpose of looking good whilst having its layout moved around
  • includes custom Widget examples, SIMPLE widget examples
    • Ie. Something with no control, Just a simple "This little widget Adds this theme-specific functionality, It requires no modification, just does this when inserted"
  • Uses ALL the current functionality WordPress offers

Kubrick has been around for awhile, Something new and fresh is needed now, The 2.5 and 2.7 redesigns have been great, And the code changes under the hood are rather clean, Just need to help theme developers create themes to be as great as the WordPress codebase is (Not to say that professional theme developers do not develop good themes, Professional theme creators are a minority in those who customize themes)

(I apologise if any of this has been repeated numerous times, If i'm unclear, Or contradict myself.)

Attachments (15)

9015.comments.diff (4.0 KB) - added by beaulebens 12 years ago.
Use comment_form()
twentyten-cleanup.diff (57.5 KB) - added by ptahdunbar 12 years ago.
twentyten cleanup first run
twentyten-clean-up.diff (80.5 KB) - added by ptahdunbar 12 years ago.
twentyten-styles.diff (2.2 KB) - added by ptahdunbar 12 years ago.
minor tweaks the CSS styles.
9015.attachment.diff (2.5 KB) - added by ampt 12 years ago.
Use get_post_comments_feed_link(), fix attachment and link function calls
twentyten.diff (73.2 KB) - added by ptahdunbar 12 years ago.
formatting, translations, spacing.
9015.functions_cleanup.diff (18.5 KB) - added by sivel 12 years ago.
wrap all functions in function_exists, move standalone code into an init function, function prefixing, and code cleanup
functions.php-patch.diff (6.7 KB) - added by ptahdunbar 12 years ago.
wraps the loop.php into twentyten_get_loop_template() which calls the locate_template function. wrap the title tag into a filterable function and removed cat_meow() and tag_ur_it() as their no longer used.
more-functions.php-patch.diff (3.5 KB) - added by ptahdunbar 12 years ago.
Use the API for CSS and JS, wrapped the header background image into a function
more-more-functions.php-patch.diff (21.6 KB) - added by ptahdunbar 12 years ago.
All page titles are now consistent with a new twentyten_page_title() function which is filterable. Wrapped page links into a filterable function too.
9015.get_loop.diff (10.4 KB) - added by dd32 12 years ago.
9015.functions_cleanup.2.diff (20.1 KB) - added by sivel 12 years ago.
Same as previous, except refresh patch and move $content_width into global scope
9015_minor1.patch (582 bytes) - added by hakre 12 years ago.
Comment was wrong. Fixed.
9015.coding_standards.diff (40.3 KB) - added by sivel 12 years ago.
Some massive coding standards cleanups
missing_domain.diff (4.9 KB) - added by momo360modena 12 years ago.
Missing domain translation

Download all attachments as: .zip

Change History (176)

#1 @ionfish
13 years ago

Not sure I have time to write something myself, but this would definitely be a worthwhile addition.

I don't want to blow my own trumpet unduly, but Tarski offers at least half of what you're suggesting. There are ideas in there I think are worth rolling into any theme framework to be included in WordPress, including API extensions, the ability to change the layout without changing code (this is great for non-technical people) etc. It's also up to date with regards to WP functionality; I track trunk and synchronise releases with WP core. I'm not suggesting it should be imported wholesale into WP, but that there's a lot of pretty decent code which could be appropriated by anyone wanting to take this on.

http://github.com/ionfish/tarski/

#2 @DD32
13 years ago

The problem i have with Tarski, is that its not easy for people to tinker with its code, Its got a tonne of PHP in there which many would be confused about.. I'm wanting a theme with very limited extra PHP, focusing on the Core WordPress and what it can offer, Not what a smart theme designer has thought up and decided to include.. Thats what more advanced users can do, Not the majority of people who this'd benefit

My thought of customizable is NOT user-based clicking here, clicking there, but rather at modifying the HTML/CSS/PHP, Such a theme that was point and click, would be very useless for others to extend off, simply because it'd be rather complicated already.

Simplistic all the way through is what i'm thinking of.. There exist enough themes which do lots of things out of the box, Not enough which can be used to showcase and base stuff off..

#3 @Viper007Bond
13 years ago

As I mentioned to DD32 on IRC, I am strongly in favor of this. I have no problems with Kubrick and infact I like it a lot, but for a user looking to create their own theme, Kubrick isn't a great base for a variety of reasons. Tons of people use it as a base anyway though for their unique looking themes and we should help them avoid doing that.

Bundling a "want to make your own theme? then check this one out" theme with WordPress would greatly assist users new to WordPress in both how it should be done and so forth.

I have been looking for WordPress tickets to take on lately and while I have absolutely no eye for design, I do have a ton of experience when it comes to the coding of themes. So sign me up for this if it gets the go ahead and if any designers (Matt Thomas perhaps?) want to knock out the HTML/CSS. I'd be happy to do the rest.

#4 @ionfish
13 years ago

DD32: those are definitely valid points. I suppose I was also thinking about things like CSRF-protected login/out links, SSL-admin compatible links, which many themes don't include, but Tarski does. I certainly wasn't advocating rolling something as complex as Tarski into WP wholesale (it's over 6000 LOC, which is not exactly lightweight).

This would also be a good venue to think about new API hooks which could help theme authors provide a common framework that plugins, child themes etc. could use to extend themes without needing to chop up the theme code. I did this while ago and it's great to be able to tell people not to hack the core code but to write a small plugin instead.

#5 @josephscott
13 years ago

Just wanted to chime in that I think this is a good idea and support the general principle. There are a few specific customization techniques that I'd like to see when things start for firm up.

#6 follow-up: @matt
13 years ago

I'll talk to a few designers about something within this framework - thinking something relatively minimalist, impeccable typography, and clean colors that fits within the WordPress aesthetic.

#7 follow-up: @JohnMyr
13 years ago

I`d like to throw in my two cents in this discussion:

WordPress should come with a very well documented theme framework with child themes for several audiences. A blog theme, a "cms" page-centric theme, a news style theme and a photoblog child theme.

There are many great theme frameworks out there, but the default that shipes with WordPress should set a new standard in theme framework documentation, for both "experts" and novices. Better documentation than its possible for a single or three theme developers to make for free on spare time, with documentation in the codex, in wordpress.tv and maybe in a new opensource e-book as planned with WordPress.

Matt: I believe you came with some photoblog promises in your new year post...

There are so many dull, boring Kubrick blogs out there, with little or bad content making the impression that WordPress is also dull....

John Myrstad

#8 in reply to: ↑ 6 @DD32
13 years ago

Replying to matt:

thinking something relatively minimalist, impeccable typography, and clean colors that fits within the WordPress aesthetic.

Exactly, Minimal, Clean, Yet still covers all the bases, and to use the Poetry line, People can understand straight away and get straight to changing it how they want

WordPress should come with a very well documented theme framework with child themes for several audiences. A blog theme, a "cms" page-centric theme, a news style theme and a photoblog child theme.

That sounds great too, Bland base theme, Child themes which only modify a small ammount, but give the bland theme a huge facelift for a specific purpose. There are a number of specific themes around for photoblogging, or magazine, but most are rather complicated.

#9 @johnbillion
13 years ago

  • Cc johnbillion@… added

#10 @DD32
13 years ago

@Matt: Any developments?

Any more feedback from anyone?

#11 @sivel
13 years ago

  • Cc matt@… added

#12 in reply to: ↑ 7 @neovita
12 years ago

Replying to JohnMyr:

WordPress should come with a very well documented theme framework with child themes for several audiences. A blog theme, a "cms" page-centric theme, a news style theme and a photoblog child theme.

I agree. One challenge I face is the stereotype of wordpress being "just a blogging platform." I think a suite of themes is a good idea.

What is the status on this project?

#13 @DD32
12 years ago

What is the status on this project?

I'm thinking of creating a public SVN somewhere and starting to write something at this rate, Might get some more people interested/giving feedback

#14 follow-up: @ryan
12 years ago

There are all kinds of theme frameworks around. Thematic, sandbox, Carrington. Pick one and find someone to do a decent default design.

#15 in reply to: ↑ 14 @Viper007Bond
12 years ago

Replying to ryan:

There are all kinds of theme frameworks around. Thematic, sandbox, Carrington. Pick one and find someone to do a decent default design.

If we do bundle, we should fork so we have control over it. Sandbox for example hasn't been updated in quite a while and lacks all of the 2.7 stuff (comment classes, threaded comments, etc.). Not sure about the others though.

My point is using an existing framework may be a better solution than starting from scratch (I dunno), but if we do go with an existing framework we should give it a through tire kicking and tune-up.

#16 @crondeau
12 years ago

  • Cc crondeau added

Lloyd Budd sent me a link to this post yesterday... I wish I had seen this before and would have offered my help. I just launched a series of templates yesterday that address this needs. I haven't even announced it yet, but was asking Lloyd what he thought. The site is http://www.framework-templates.com.

The reason I put these together is because I'm teaching this summer to a group of Web developers who have so far learned Dreamweaver, CSS and HTML. The next part of the course was to focus on a CMS and WordPress was suggested. In order to get ready for them, I thought I would clean up the templates that I use. I too felt very frustrated with Kubric when I started and felt like minimalist templates where one can just add their design would be good to have.

I don't think that these templates are compete by any means. For example, I don't think that they support threaded comments, but maybe they would be a good starting ground? I would be happy to contribute to this if needed.

#17 @beaulebens
12 years ago

  • Cc beau@… added

#18 @Denis-de-Bernardy
12 years ago

  • Keywords needs-patch added
  • Milestone changed from 2.9 to Future Release

#19 @Denis-de-Bernardy
12 years ago

  • Keywords dev-feedback removed

#20 @ShaneF
12 years ago

  • Cc ShaneF added

#21 @caesarsgrunt
12 years ago

  • Cc caesar@… added
  • Milestone changed from Future Release to 3.0
  • Summary changed from Proposal: A new theme based around Modern WordPress which is designed to be simple, customizable, and something to base themes off to New theme for 3.0
  • Type changed from feature request to task (blessed)

#22 @caesarsgrunt
12 years ago

Sorry, I obviously meant 3.0, not 2.9....

#23 @dd32
12 years ago

  • Reporter changed from DD32 to dd32

#24 @Utkarsh
12 years ago

  • Cc admin@… added

#25 @sirzooro
12 years ago

  • Cc sirzooro added

#26 @hakre
12 years ago

Just to throw in

  • CSS reset
  • Clean Markup in accordance to what API functions return (those can be aligned while the theme is developed)
  • Propper UTF-8 support
  • Propper RTL / LTR support
  • Child theme demo for beginners
  • CSS classes, IDs only where appropriate
  • Widget support out of the box / default sidebar config on setup
  • Nested / Unnested Comments support
  • Theme should work with stylesheets switched off / Browser default stylesheets
  • HTML should validate; CSS should validate
  • Keep it simple, not stupid. That will help others to evolve based on this.
  • CSS Documented with CSSDOC.
  • Unobtrusive - should properly work w/o javascript and plugins enabled.
  • A nicer header image/color support than the current default theme. But please keep something similar in, many new users love that AFAIK.

#27 @hakre
12 years ago

Related: #11609

#29 @ptahdunbar
12 years ago

  • Cc ptahdunbar added

#31 @ryan
12 years ago

(In [13018]) Make twentyten the fallback theme. see #9015

#32 @westi
12 years ago

(In [13019]) Switch to a constant for the fallback theme. See #9015.

#33 @westi
12 years ago

[13019] hilights the fact that we need a comments-popup.php in the new theme.

#34 @jdingman
12 years ago

  • Cc jdingman added

#35 @Viper007Bond
12 years ago

Small note: per-post/page header images (sourced from a post thumbnail) are currently broken due to #12146

You can work around this by not using a named size when calling get_the_post_thumbnail() (and passing a size array instead), but that's improper.

#36 @hd-J
12 years ago

  • Cc hd-J added

#37 @ryan
12 years ago

(In [13027]) Use post_password_required(). see #9015

#38 @ryan
12 years ago

Some gettext added for #12170. Also switched some places in the comments form to use site_url() and admin_url().

#39 @ryan
12 years ago

Beau is looking at adding comment_form() and login_form() support.

#40 @ryan
12 years ago

  • Summary changed from New theme for 3.0 to New theme for 3.0 -- Twenty Ten

#41 @automattor
12 years ago

(In [13029]) Escape some attributes. Fix search form action. see #9015

@beaulebens
12 years ago

Use comment_form()

#42 @ryan
12 years ago

(In [13031]) Use comment_form(). Props beaulebens. see #9015

#43 @Gautam Gupta
12 years ago

  • Cc gautam.2011@… added
  • Keywords needs-patch removed

#44 @johnbillion
12 years ago

  • Cc johnbillion@… removed

#45 @ryan
12 years ago

All functions in functions.php need a twentyten prefix.

#46 @Viper007Bond
12 years ago

I'd be happy to volunteer to give the theme's code a through review / cleanup if no one else is already doing it.

@ptahdunbar
12 years ago

twentyten cleanup first run

#47 @ptahdunbar
12 years ago

This cleanup is functionality changes only, meaning nothing design related was affected. I ran through all the template files and make sure all strings were translatable, prefixed all functions with twentyten, fix spacing issues to be inline with coding standards, updated functions to use the current API etc. Just a lot of little things.

Also:

  • the title tag is a function: twentytwn_page_title(); (which is now filterable)
  • added automatic_feed_links(); to functions.php
  • Removed hard-coded CSS stylesheets to use wp_enqueue_styles();
  • Removed hard-coded comment reply js to use wp_print_scripts();
  • added twentyten_header_image(); for the header background image.
  • renamed twentyten_comment(); to twentyten_list_comments();

I think that's it. Round 2 will be making the theme more DRY.

#48 @ionfish
12 years ago

  • Cc ionfish@… added

#49 @ionfish
12 years ago

  • Cc ionfish@… removed

#50 follow-up: @ptahdunbar
12 years ago

Round 2:

  • changed twentyten_page_title() to twentyten_document_title()
  • twentyten_page_title is now for page titles.
  • twentyten_page_links();
  • merged twentyten_cats_meow() and twentyten_tag_ur_it() into twentyten_terms_lists(); which supports any taxonomy.

Plus a few other minor stuff. Overall, the template files are getting a lot cleaner which is nice.

#51 @ptahdunbar
12 years ago

We need a new template tag: single_tax_title();. single_cat_title and single_tag_title could use it too.

@ptahdunbar
12 years ago

minor tweaks the CSS styles.

#52 follow-up: @ptahdunbar
12 years ago

Increased the body font size to 14px so the text in the sidebar is better proportioned to the content. Added 5px margin-bottom to .widget-title and right aligned the tagline.

#53 in reply to: ↑ 50 @johnbillion
12 years ago

Replying to ptahdunbar:
Minor point: You've accidentally self-closed the <form> tag in this patch.

#54 follow-up: @johnbillion
12 years ago

Or your earlier patch rather.

#55 in reply to: ↑ 54 ; follow-up: @ptahdunbar
12 years ago

Replying to johnbillion:

Or your earlier patch rather.

Which patch are you referring to?

#56 in reply to: ↑ 55 @Utkarsh
12 years ago

Replying to ptahdunbar:

Replying to johnbillion:

Or your earlier patch rather.

Which patch are you referring to?

He might be referring to the change you made on line 1 at http://core.trac.wordpress.org/attachment/ticket/9015/twentyten-clean-up.diff

Its correct though.

#57 in reply to: ↑ 52 ; follow-up: @iammattthomas
12 years ago

Replying to ptahdunbar:

Increased the body font size to 14px so the text in the sidebar is better proportioned to the content. Added 5px margin-bottom to .widget-title and right aligned the tagline.

I recommend not making these changes to style.css for a couple of reasons:

  • The theme was designed to highlight the content, as such there's a significant contrast between the type size of the main content area and widget areas. Increasing the body font size reduces this contrast and draws attention away from the main content area.
  • The tagline is currently left-aligned with the sidebar and the site-generator label in the footer. Right-aligning it breaks this consistency with the grid.
  • Widgets currently have a consistent baseline grid, so the widgets line up well (look at the footer of http://2010dev.wordpress.com for example). Adding a bottom margin to widget titles breaks that.

I'll admit that all of these are subjective -- but that's kind of my point. :) Most of these decisions were set with the theme on which 2010 was based, Kirby, and I'm not sure there's a strong enough argument for changing them.

#58 in reply to: ↑ 57 ; follow-ups: @ptahdunbar
12 years ago

Replying to iammattthomas:

I recommend not making these changes to style.css for a couple of reasons:

Sounds valid. And I get your idea around focusing on the content, but the body font size just looks too small at 12px especially as a serif font. Anyway, I won't throw a fit over it, you're the designer :)

Style.css aside, what are your thoughts on the twentyten-clean-up.patch?

#59 in reply to: ↑ 58 @iammattthomas
12 years ago

Style.css aside, what are your thoughts on the twentyten-clean-up.patch?

Everything else looked good to me I'm just a designer and some of the PHP is still over my head, so I was going to leave that for someone more knowledgeable than me to comment. :)

#60 follow-up: @ShaneF
12 years ago

  • Cc ShaneF removed

Ok. I am not making a patch for this BUT....

in header.php there is

<link rel="profile" href="http://gmpg.org/xfn/11">

needs to be

<link rel="profile" href="http://gmpg.org/xfn/11" />

Thx. :)

#61 @ShaneF
12 years ago

  • Cc ShaneF added

#62 in reply to: ↑ 60 @iammattthomas
12 years ago

<link rel="profile" href="http://gmpg.org/xfn/11" />

Thanks, done. :)

#64 in reply to: ↑ 58 ; follow-up: @nacin
12 years ago

Replying to ptahdunbar:

Style.css aside, what are your thoughts on the twentyten-clean-up.patch?

I'm thinking that very large patches (I'm guilty of this sometimes too) in this case are difficult to follow and go stale quickly (it may be stale already).

It also makes it more difficult to see issues with the patch. For example, at one point you change || to OR, which are not interchangeable.

At least in my opinion, smaller patches would allow for better review.

#65 in reply to: ↑ 64 @ptahdunbar
12 years ago

Replying to nacin:

Replying to ptahdunbar:

Style.css aside, what are your thoughts on the twentyten-clean-up.patch?

I'm thinking that very large patches (I'm guilty of this sometimes too) in this case are difficult to follow and go stale quickly (it may be stale already).

It also makes it more difficult to see issues with the patch. For example, at one point you change || to OR, which are not interchangeable.

At least in my opinion, smaller patches would allow for better review.

It all started out with prefixing the functions with twentyten_, then I saw a lot of other little things that needed translation, then I started making small enhancements and making the code more extendable and efficient... and yeah, it was a snowball effect ;D

I figured bundling up all the changes together instead of uploading fifty million patches which are all about doing the same thing would be better. But I'd keep in mind to do smaller patches in the future. If you want, I'll start to separate the patch out into smaller ones if that helps?

@ampt
12 years ago

Use get_post_comments_feed_link(), fix attachment and link function calls

#66 follow-up: @Viper007Bond
12 years ago

ptahdunbar: group them into types. A patch for translation. A patch for prefixing. etc.

#67 in reply to: ↑ 66 @ptahdunbar
12 years ago

Replying to Viper007Bond:

ptahdunbar: group them into types. A patch for translation. A patch for prefixing. etc.

Yes sir! Patches coming up in a bit!

#68 @dd32
12 years ago

(In [13105]) Remove Direct SQL, Use new esc_html() function, Correct the case of the ID keys. See #9015

#69 @dd32
12 years ago

(In [13109]) Remove extra get_option() calls (the functions default to that), Use the Media API for attachment image HTML, Replace deprecated function use(1.2~2.9 deprecated). See #9015

#70 @dd32
12 years ago

(In [13111]) s/the_time()/get_the_date/ for dates. See #9015

#71 @dd32
12 years ago

(In [13112]) Whitespace cleanup, TwentyTen <title> standardisation & gettext. See #9015

@ptahdunbar
12 years ago

formatting, translations, spacing.

#72 @aldenta
12 years ago

  • Cc john@… added

#73 follow-up: @cnorris23
12 years ago

I don't know if this is on the Todo list, or if it just got overlooked, but the current screenshot included with 2010 is the Kirby Theme screenshot.

#74 in reply to: ↑ 73 ; follow-up: @iammattthomas
12 years ago

Replying to cnorris23:

I don't know if this is on the Todo list, or if it just got overlooked, but the current screenshot included with 2010 is the Kirby Theme screenshot.

It's on my to-do; I'm just waiting until I'm sure the design is finalized before making a screenshot. :)

#75 follow-up: @dd32
12 years ago

One thing i've noticed, Is that the Gallery and Aside styling is lacking from any archive other than the front page (year, taxonomy, search). Are there plans on adding that in?

#76 follow-up: @Denis-de-Bernardy
12 years ago

@dd32: shouldn't r13105 use esc_attr() rather than esc_html()?

#77 in reply to: ↑ 76 @dd32
12 years ago

Replying to Denis-de-Bernardy:

@dd32: shouldn't r13105 use esc_attr() rather than esc_html()?

No, Or at least not the instances of it i can see. Thats written a bit weirdly, but its basically esc_attr((..esc_html($user_data)..));

#78 @Denis-de-Bernardy
12 years ago

k... just peeking around. :-)

btw, while snooping into the twentyten files, I noticed:

<?php wp_link_pages('before=<div class="page-link">' . __( 'Pages:', 'twentyten' ) . '&after=</div>') ?>

perhaps we should change it and other such calls into the likes of:

<?php wp_link_pages(array('before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>')) ?>

or perhaps even:

<?php wp_link_pages(array(
     'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ),
     'after' => '</div>',
     )) ?>

the second suggestion would get my vote (note the trailing comma), because it makes it brain dead simple to copy/paste a line in order to add further arguments to the call.

#79 @dd32
12 years ago

btw, while snooping into the twentyten files, I noticed:

I saw a lot of those too, And will change those as well.

I'm going to try to get these patches on this ticket commited before i change them however, Its so easy to make patches stale..

#80 @dd32
12 years ago

(In [13128]) Formatting, Translations & Whitespace. Props ptahdunbar. See #9015

#81 follow-up: @dd32
12 years ago

Applied some of the patches, Its a bit hard to tell what remains.. Sorry if anyone's patch gets left out, some of the patches duplicate the changes.

I've left twentyten-styles.diff for now, iammattthomas: What are your thoughts on the style changes there? Good to go?

#82 @dd32
12 years ago

(In [13129]) Fix comment listing, Correct Indentations. See #9015

#83 @dd32
12 years ago

(In [13130]) Comments.php PHP cleanup. See #9015

#84 in reply to: ↑ 81 @iammattthomas
12 years ago

Replying to dd32:

I've left twentyten-styles.diff for now, iammattthomas: What are your thoughts on the style changes there? Good to go?

No, don't want to apply those -- they're the issues I was talking about in my <a href="http://core.trac.wordpress.org/timeline?from=2010-02-11T18%3A46%3A22Z&precision=second">comment above</a>.

#85 @iammattthomas
12 years ago

Sorry, that's what I get for not previewing. The issues with the CSS I mentioned are here: http://core.trac.wordpress.org/ticket/9015#comment:57

#86 in reply to: ↑ 75 @iammattthomas
12 years ago

Replying to dd32:

One thing i've noticed, Is that the Gallery and Aside styling is lacking from any archive other than the front page (year, taxonomy, search). Are there plans on adding that in?

I hadn't, only because I didn't know it was possible. :) I think it'd be great for consistency if the other archives kept the gallery and asides styling.

#87 follow-ups: @dd32
12 years ago

No, don't want to apply those

Cheers, I wish there was a "Stale", "Commited", "Wontfix/Invalid" status for patches on trac..

I hadn't, only because I didn't know it was possible. :) I think it'd be great for consistency if the other archives kept the gallery and asides styling.

Thanks, I just wanted to know if it was a Style-choice or not.

To implement that, theres a few options

  1. Duplicate the code throughout index.php, archive.php, search.php, author.php, tag.php & category.php
  2. Change the theme to not have the extra files, but have different headings in archive.php depending on is_author(), is_tag(), etc
  3. Change the theme to include a 'multiple-post-loop.php' file, Which solely holds the loop part which is common to all the archive types

To me, #3 is the better option, #2 is basically out as its good to show new developers it can be done that way, and #1 is Alright, it just gets tedious having to modify half a dozen files in order to make everything look the same no matter which archive type is being viewed.

Any one care to comment on that?

#88 in reply to: ↑ 87 @nacin
12 years ago

Replying to dd32:

Any one care to comment on that?

I generally use option 3, though the extra file with an include is sometimes lost on a beginning themer. Then again, so might the multiple if statements that option 2 presents. And option 1 is very unnecessary duplication of code.

#89 in reply to: ↑ 87 @iammattthomas
12 years ago

Replying to dd32:

  1. Change the theme to include a 'multiple-post-loop.php' file, Which solely holds the loop part which is common to all the archive types

I like this; I think this sounds like the option that'll make things easiest for someone customizing their theme for the first time.

#90 follow-up: @sivel
12 years ago

I'd like to see all of the functions in the functions.php wrapped in a function_exists. Child themes functions.php is included before the functions.php of the parent theme. Wrapping the functions inside of this file in a function_exists would give an easy way to override the functions just as we do with pluggable.php

Just wanted to run this by everyone for their feedback before actually getting a patch together. If we do this some of the code that lives outside of a function, might want to be wrapped into a function that is called on init or something.

Questions, comments or concerns?

#91 in reply to: ↑ 90 ; follow-up: @filosofo
12 years ago

Replying to sivel:

I'd like to see all of the functions in the functions.php wrapped in a function_exists. Child themes functions.php is included before the functions.php of the parent theme. Wrapping the functions inside of this file in a function_exists would give an easy way to override the functions just as we do with pluggable.php

Better would be to make such functions methods of a theme-specific object, and then filter the name of the class that gets instantiated. Then a child theme could extend its parent class as necessary.

#92 in reply to: ↑ 91 @sivel
12 years ago

Replying to filosofo:

Better would be to make such functions methods of a theme-specific object, and then filter the name of the class that gets instantiated. Then a child theme could extend its parent class as necessary.

I honestly think that may be a step in the wrong direction. A few of us have briefly discussed this on IRC and feel this would add an extra layer of complexity and raise the minimum bar of knowledge to override these functions. I'd rather keep it simple to give new theme developers or those developers who don't have strong PHP backgrounds the ability to easily modify and extend this theme.

Don't get me wrong though, I love the idea. And perhaps if this were not a bundled theme or a theme to give a starting point with, I would be all over it.

I'm starting on a patch to wrap all of the functions in function_exists and also renaming several of the functions to prefix with twentyten.

@sivel
12 years ago

wrap all functions in function_exists, move standalone code into an init function, function prefixing, and code cleanup

#93 @dd32
12 years ago

attachment 9015.functions_cleanup.diff added

Stale patch..

#94 @nacin
12 years ago

(In [13138]) home_url() returns a value, needs to be echoed in twentyten header and footer. See #9015

#95 @dd32
12 years ago

(In [13141]) Move the Loop into a separate file. Reduces code duplication and adds Gallery/Aside styling to all archive views. See #9015

#96 in reply to: ↑ 74 ; follow-up: @cnorris23
12 years ago

Replying to iammattthomas:

It's on my to-do; I'm just waiting until I'm sure the design is finalized before making a screenshot. :)

Fair enough. With all the code changes and tweaks going in, I knew a screenshot could be easily overlooked. :) Great job so far! It's definitely a welcome change.

@ptahdunbar
12 years ago

wraps the loop.php into twentyten_get_loop_template() which calls the locate_template function. wrap the title tag into a filterable function and removed cat_meow() and tag_ur_it() as their no longer used.

#97 in reply to: ↑ 96 @ptahdunbar
12 years ago

Replying to [ptahdunbar]:

attachment functions.php-patch.diff added

that patch also adds automatic_feed_links() in functions.php too.

#98 @dd32
12 years ago

wraps the loop.php into twentyten_get_loop_template() which calls the locate_template function.

Was just talking on #wordpress-dev about adding that as a Core function get_loop() for loop.php, loop-special.php (get_loop('special')), etc

#99 @nacin
12 years ago

(In [13144]) Use automatic_feed_links() in twentyten, see #9015

@ptahdunbar
12 years ago

Use the API for CSS and JS, wrapped the header background image into a function

@ptahdunbar
12 years ago

All page titles are now consistent with a new twentyten_page_title() function which is filterable. Wrapped page links into a filterable function too.

@dd32
12 years ago

#100 @westi
12 years ago

(In [13146]) Introduce new get_generic_template() function for themes to use to bring in pieces of template.
Use in twentyten for loop.php including. See #9015.

#101 @dd32
12 years ago

(In [13147]) Replace $authordata usage with API, Restore "Also posted in.."/"Also tagged..." on taxonomy archives, Handle Excerpts for Asides correctly on Archives. See #9015

#102 @Viper007Bond
12 years ago

Notice: Undefined property: WP_Query::$queried_object in ../wp-content/themes/twentyten/functions.php  on line 129

#103 @nacin
12 years ago

(In [13152]) Use $wp_query->get_queried_object(). Also move wp_head() to end of <head>, see #9015.

@sivel
12 years ago

Same as previous, except refresh patch and move $content_width into global scope

#104 @automattor
12 years ago

(In [13156]) Add 'themes_loaded' hook to run after parent/child themes have been included. See #9015

#105 @sivel
12 years ago

Looks like this was missed for some reason:

(In [13157]) Twentyten whitespace cleanup, Wrap functions in function_exists() call to allow child themes to override them. Props sivel. See #9015

#106 @sivel
12 years ago

With the most recent changesets we wrapped all of the functions in functions.php with function_exists. Should we also move the add_filter and add_action calls inside of the function_exists checks? That way the child theme would need to do the add_filter/action. Or should we leave them for the parent theme to handle?

Also we added a themes_loaded action that runs immediately after the themes have been included (functions.php). We need to possibly run the whole twentyten_init function there or at least the add_theme_support, since init is too late for add_theme_support.

Let me know what you think.

#107 @sivel
12 years ago

Running twentyten_init on themes_loaded like we are doing is probably fine.

#108 @nacin
12 years ago

Related #11512 (Allow themes to provide a stylesheet for use within the rich text editor) -- given that we're using editor-style.css in twentyten, I'm wondering if we should now consider auto-detecting a a css file and make it easy on theme developers.

#109 @michaelh
12 years ago

Please add a valid page template to this theme, or the forums will be slammed with the question "Where's the Template option when I'm writing a page?"

#110 @markjaquith
12 years ago

(In [13166]) revert function rename from r13129 which broke the comments form. props beaulebens. see #9015

#111 @ptahdunbar
12 years ago

I've proposed that twentyen's CSS and javascript use the wp_enqueue API, is there a reason why it hasn't gotten committed?

#112 follow-ups: @dd32
12 years ago

Some patch feedback:

more-more-functions.php-patch.diff - All page titles are now consistent with a new twentyten_page_title() function which is filterable. Wrapped page links into a filterable function too.

I dont think moving everything out of the template files and into functions is in the best interst of users, Theres nothing wrong with having template code in a template.

Use the API for CSS and JS, wrapped the header background image into a function

Hadnt seen that one, Once again, I dont think its a smart move to move things out of the header to a function. I dont have anything against using the CSS API properly.. But would prefer to leave that up to someone else, It could be a bit confusing for some.

That would also mean that the stylesheets would be included in child themes too.. Potentially, its best left in the header file again.

Please add a valid page template to this theme, or the forums will be slammed with the question "Where's the Template option when I'm writing a page?"

I agree with this, What are some -Useful- templates which we could add to the theme?

#113 in reply to: ↑ 112 @Viper007Bond
12 years ago

Replying to dd32:

I agree with this, What are some -Useful- templates which we could add to the theme?

A Page template with no sidebar perhaps? (Wider content area)

#114 in reply to: ↑ 112 ; follow-up: @michaelh
12 years ago

Replying to dd32:

I agree with this, What are some -Useful- templates which we could add to the theme?

First choice would be a page of posts (say for category 1), with working pagination, would address a question that is constantly (almost every single day) asked in the forums.

In lieu of that, a page that list authors with some profile data and their avatar would be a 2nd choice. Other choices would be a list of categories with several posts in each category using the_excerpt, or a list of pages, or even a list of links (like the default theme).

Replying to Viper007Bond:

A Page template with no sidebar perhaps? (Wider content area)

One of each example, wide no sidebar, and narrow with sidebar, would be nicest.

#115 in reply to: ↑ 114 ; follow-up: @Viper007Bond
12 years ago

Replying to michaelh:

narrow with sidebar

Isn't that what the default Page template is?

#116 in reply to: ↑ 115 @michaelh
12 years ago

Replying to Viper007Bond:

Replying to michaelh:

narrow with sidebar

Isn't that what the default Page template is?

You are correct sir.

#117 @WraithKenny
12 years ago

  • Cc WraithKenny added

#118 @iammattthomas
12 years ago

(In [13179]) Adding single-column, no sidebar page template to twentyten. See #9015

#119 @dougal
12 years ago

  • Cc dougal added

#120 @iammattthomas
12 years ago

(In [13181]) Fix meta-sep divider on gallery items in twentyten, see #9015

#121 follow-up: @hakre
12 years ago

that does not make sense to me:

#footer-widget-area #fourth {
	margin-right: 0;
}

(found in style.css)

@hakre
12 years ago

Comment was wrong. Fixed.

#122 in reply to: ↑ 121 @iammattthomas
12 years ago

Replying to hakre:

that does not make sense to me:

The footer widget areas get a right margin so there's spacing between them:

#footer-widget-area .widget-area {
	margin-right: 20px;
}

so the rightmost widget area needs margin-right:0 so it fits aligned to the right edge of the page.

#123 @dd32
12 years ago

(In [13218]) Remove Unneeded the_post/rewind_posts() calls, Add a "No posts for this archive" type message to the loop. See #9015

#124 @dd32
12 years ago

"Apologies, but no results were found for the requested Archive. Perhaps searching will help find a related post."

Thats the current text for the "No posts match this archive" case. To get to this page, Load a url such as /category/no-posts-in-this-category/ (Obviously, That category must exist first)

I fully expect someone to come up with some better wording for that message.

#125 @dd32
12 years ago

In lieu of that, a page that list authors with some profile data and their avatar would be a 2nd choice.

That sounded like a great template idea to me.

..Then i went to implement it and found that its not possible to retrieve a list of authors, or those with the capability to publish posts, without querying for every single user which exists on the blog. The result would be, that for small sites it wouldnt be a problem, but for sites with large numbers of users (Subscribers mainly) it would be a very expensive (CPU time wise) page to display.

It might be better off leaving that template out for now, and adding it when the role system gets a bit of an overhaul.

#126 @ryan
12 years ago

(In [13319]) Add a selection of headers to twentyten. see #9015

#127 @iammattthomas
12 years ago

(In [13335]) Tag editor-style support, adjust site-info font size in twentyten. See #9015

#128 @nacin
12 years ago

On activation:
"New theme activated. This theme supports widgets, please visit the widgets settings page to configure them."

We should consider expanding that message to include widgets, header, background, navigation, etc.

#129 @nacin
12 years ago

Also, I think we should move "Add New Themes" to a much lower rank on the Appearance menu. I've always found it odd that Widgets and Editor are separated from Menus, Header, and Background.

#130 @dd32
12 years ago

I'm thinking, If a post has a thumbnail, It should be shown like the Gallery icon.

I'd also like to see that loop.php file simplified slightly, The 3-if block is a bit complex for some people, Its quite possible some extra whitespace and extra comments will make it much easier for certain users..

#131 @holizz
12 years ago

  • Cc tom@… added

#132 @mrmist
12 years ago

There's an issue with the nav menu that is a problem if you have a lot of Pages. See #11817

#133 @nacin
12 years ago

(In [13441]) Introduce add_editor_style() to easily register a stylesheet for the visual editor. see #11512 see #9015

#134 @nacin
12 years ago

(In [13444]) add_editor_style(), second pass. Accept an array of stylesheets, also allow multiple calls to the function. Support child themes. See #9015 see #11512

#135 @nacin
12 years ago

(In [13469]) Escape mod_$theme option name. see #9015

#136 follow-up: @Denis-de-Bernardy
12 years ago

isn't r13469 redundant with the escaping in get_option?

#137 in reply to: ↑ 136 @nacin
12 years ago

Replying to Denis-de-Bernardy:

isn't r13469 redundant with the escaping in get_option?

For better or worse, get_option expects that the option name is already escaped. There is escaping in add_option, update_option, etc. though.

#138 @Denis-de-Bernardy
12 years ago

duh... that get_option() expects escaped data is totally nuts... opening a new ticket.

#139 follow-up: @dougal
12 years ago

Minor nit:
The twentyten_remove_gallery_css() function trashes the gallery-id information. That info could potentially be useful to plugins which want to target the galleries on a page for dynamic javascripty fun. Can we at least try to preserve that?

Getting informations about the guts of a gallery from a plugin is hard enough already (you should look at the hoops I'm jumping through in my FancyBox Gallery plugin). I have some ideas on how to improve this, but that's a separate discussion, not related to twentyten.

#140 in reply to: ↑ 139 ; follow-up: @Viper007Bond
12 years ago

Replying to dougal:

Minor nit:
The twentyten_remove_gallery_css() function trashes the gallery-id information. That info could potentially be useful to plugins which want to target the galleries on a page for dynamic javascripty fun. Can we at least try to preserve that?

Indeed, it broke my lightbox plugin. I had to recode it to use a random number instead of the gallery's ID.

However really it should be a class rather than an ID incase you include a gallery from another post into a post or make the gallery show up twice. Probably a discussion for a separate ticket though.

#141 @nacin
12 years ago

Someone named anderswc brought up on IRC that the fallback theme probably can't be so reliant on custom functions (see below).

I'd rather see us add hooks to existing functions instead of adding on our own API layer, myself. Otherwise, also, it indicates that the current API isn't good enough -- but it should be. See also #12370, ("we need a smarter version of wp_title").

Hey, I've been messing with trunk recently and I have a quick question.
I noticed that twentyten is the new default theme, which makes sense
but I created a test theme w/ no header or footer
when the index file calls get_header, the header file from twentyten is included
but it references at least one function from twentyten's functions.php file
so 1) are themes now going to be required to have header/footer/sidebar.php files and if not, 2) does that issue need to be fixed in twentyten before release?
fyi, the function in question is twentyten_the_page_number

#142 in reply to: ↑ 140 ; follow-up: @dougal
12 years ago

Replying to Viper007Bond:

Indeed, it broke my lightbox plugin. I had to recode it to use a random number instead of the gallery's ID.

However really it should be a class rather than an ID incase you include a gallery from another post into a post or make the gallery show up twice. Probably a discussion for a separate ticket though.

Not sure why (or how) you'd include the same gallery more than once in the same view... Maybe if you had a widget that expanded a gallery shortcode on the same view as a post with the same gallery. But I think that would be a pretty rare edge case.

But even if we moved the gallery-id into class, the main problem still stands: the function in question should only remove the inline style element, and leave the div declaration intact.

#143 @nacin
12 years ago

Looks like I never cross-referenced this here: #12303 includes some potential tweaks for Mobile Safari.

#144 in reply to: ↑ 142 @Viper007Bond
12 years ago

Replying to dougal:

Not sure why (or how) you'd include the same gallery more than once in the same view...

[gallery id="123"]

I've posted a gallery of screenshots on a plugin's homepage on my blog before and then included that same gallery in the release post on my blog's front page. Searching for the plugin's name would return both the post and page for example.

Heck, just inserting [gallery] twice in the content would do it (break validation) I believe.

#145 @nacin
12 years ago

(In [13552]) Remove only gallery CSS in twentyten, leaving the gallery div classes and id intact. see #9015

#146 @iammattthomas
12 years ago

(In [13558]) Add a bit of padding to form inputs in twentyten, see #9015

#147 @nacin
12 years ago

Matt, see #12483, for a suggestion using the short HTML5 declaration for charset.

I've been assigning you the owner of any tickets I see that related to Twentyten, which you can view when logged in at http://core.trac.wordpress.org/query.

@sivel
12 years ago

Some massive coding standards cleanups

#148 @sivel
12 years ago

  • Keywords has-patch added

My last patch is for some huge coding standards cleanups across all files within this theme.

#149 @nacin
12 years ago

A few widgets, including recent comments, spit out CSS into the header. Maybe we can remove those hooks and style the default widgets in Twenty Ten?

@momo360modena
12 years ago

Missing domain translation

#150 @momo360modena
12 years ago

The theme have some string without the theme domain. Fix also one hardcoded string.

#151 @momo360modena
12 years ago

  • Cc momo360modena added

#152 @iammattthomas
12 years ago

(In [13720]) Coding standards cleanup in twentyten, see #9015. Props sivel

#153 @iammattthomas
12 years ago

(In [13724]) Fix missing domain translation, see #9015. Props momo360modena.

#154 @nacin
12 years ago

(In [13757]) Add delimiter to tag listing on twentyten/single.php. see #9015

#155 @mikeschinkel
12 years ago

  • Cc mikeschinkel@… added

#156 follow-up: @ninjawr
12 years ago

Is it possible to implement this idea into 2010, or has that time come and gone? http://wordpress.org/extend/ideas/topic/proper-use-of-relalternate-for-feeds

#157 in reply to: ↑ 156 @iammattthomas
12 years ago

Replying to ninjawr:

Is it possible to implement this idea into 2010, or has that time come and gone? http://wordpress.org/extend/ideas/topic/proper-use-of-relalternate-for-feeds

Sure, a patch could still be implemented.

#158 @nacin
12 years ago

  • Resolution set to fixed
  • Status changed from new to closed

Please open new tickets for bugs and cleanups.

#159 @musarika
11 years ago

  • Keywords has-patch removed
  • Priority changed from normal to high
  • Resolution fixed deleted
  • Status changed from closed to reopened
  • Type changed from task (blessed) to defect (bug)

I have been using twentyten for a base for a new theme, it's a brilliant base for a new theme and I give it thumbs up. The only issue I have is the MENUS, it might be a glitch in wordpress 3.0 itself or something I have overlooked but in internet explorer 6, hover effects do not work at all and you can't view subpages when you hover over link. Can you please help.

#160 @nacin
11 years ago

  • Resolution set to fixed
  • Status changed from reopened to closed
  • Type changed from defect (bug) to task (blessed)

This ticket is final, and the bug you mention isn't related to Twenty Ten. Please open new tickets for bugs and cleanups.

We're working on menus still, including IE6 support. (Though, please, don't use IE6...) This will take place in other tickets, so you don't need to open a new one.

#161 @nacin
11 years ago

  • Priority changed from high to normal
Note: See TracTickets for help on using tickets.