5 ms·
It's unfortunate that this is necessary. Other frameworks have normal iterators, the for loop, maybe a while loop as well. They just show items from the db. Sim
by woah 13y ago
It's unfortunate that this is necessary. Other frameworks have normal iterators, the for loop, maybe a while loop as well. They just show items from the db. Simple. WP has somehow fetishized this simple affair into "The Loop"- 3 different functions, all with slightly different behavior and syntax, with about 40 arbitrary defaults each that must be overridden if you want basic, bare bones behavior. It's no surprise that WP is the only framework that needs an online generator for something that is usually so simple. I could get into "The Post" as well, but I'll leave that for another time.
- jblz 13y agoYou can easily loop through the results of this call with for or while: http://codex.wordpress.org/Class_Reference/WP_Query http://codex.wordpress.org/Class_Reference/WP_Query
- jwarren 13y agoWhat about generating queries is complex enough to make you feel like such a simple generator is necessary? I would heartily agree that the documentation [1] isn't great, but it's generally very easy to use and quite powerful. [1] http://codex.wordpress.org/Class_Reference/WP_Query http://codex.wordpress.org/Class_Reference/WP_Query
- d23 13y ago> To begin with, have_posts(), which calls $wp_query->have_posts(), is called to see if there are any posts to show. If there are, a while loop is begun, using have_posts() as the condition. This will iterate around as long as there are posts to show. In each iteration, the_post(), which calls $wp_query->the_post() is called, setting up internal variables within $wp_query and the global $post variable (which the Template Tags rely on), as above. Seriously, you're apologizing for this? This is just one of the myriad examples of what a mess Wordpress is, and it's at core of the functionality.
- jwarren 13y agoSorry, maybe I wasn't clear enough there. I feel that the way you construct an array and pass it to WP_Query is clear and easy to use. Here's a random example from that docs page: $args = array( 'post_type' => 'my_custom_post_type', 'meta_key' => 'age', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'age', 'value' => array(3, 4), 'compare' => 'IN', ) ) ); $query = new WP_Query($args); So it's returning posts that: - Are of the post type: "my_custom_post_type", - That contain a custom field with the key of "age", - That are in ascending order by the value of the aforementioned custom field, - Where the "age" field is equal to either 3 or 4. That seems relatively easy and straightforward to me. The bit that you brought up is the loop, which is the canonical way of displaying the posts retrieved by a query. You don't have to, of course, you can just get an array of them and foreach your way through. The abstraction does allow for quick, easy, and relatively flexible development. I'd fully believe that it's messy on the backend, but that honestly doesn't normally affect my day-to-day usage. Now, I'm not about to argue the merits of the core architecture of Wordpress - that's beyond my expertise. But I use it daily for client work, and it works very well for my needs.
- meritt 13y agoWhile I agree that WP is an absolute mess, I want to remind you that this has been how WP has operated for long before the vast majority of today's frameworks have existed. WP isn't a framework. It's a CMS. A shitty one that needs to go away, but criticizing it for not having the same feature-set as modern frameworks is simply unfair and unnecessary.
- voyou 13y agoWhile WordPress is a bit of a shitty CMS, all the other CMSes I've tried are even worse. Are there any actually good alternatives?
- rslonik 13y agoI'm with you. Saying WP is a shitty CMS is easy, but where is a good alternative? There is none. Anyone can say anything about WordPress, but the FACT is that it's most used CMS, with a BIG community and market arround it.
- blindhippo 13y agoWordpress is a code architectural mess, but as a CMS it's one of the best I've ever seen. (CMS's are deceptively complicated to build) People saying it's shitty don't know what they are talking about (even you point out others you've tried are worse). Wordpress is best in class for what it is: open source content manager. It's best use case is for a simple blog. It can be bashed into submission to be an ok general CMS or even a community managment solution. Past that though, it's architecture falls to pieces - but then, you wouldn't use a hammer to drill a hole would you?
- coolsunglasses 13y agoThe real difficulty in CMSs isn't in making the CMS, it's making a CMS that is reasonably extensible and configurable by end-users as well as coders. Too far into that extreme gets into Drupal-land.
- juddlyon 13y ago
- wyck 13y agoThere is no "fetish" for The Loop, it's just a basic function, hardly something you can bash WordPress about. It does not "need" an online generator and I don't know any actual developer who would use one. This seems geared towards beginners since WordPress has a low barrier of entry and there is nothing wrong with that. I have `WP Query` as a snippet on my IDE because it's faster than typing, this is essentially the same as a web interface , it makes no sense to bash what is essentially auto-complete. WordPress comes with many default parameters because it's convenient, if you don't want to use them, create your own, there's nothing stopping you from doing that. tl;dr The last time I checked a `while loop` was a basic control statement of most every programming language.