[wp-trac] Re: [WordPress Trac] #5121: statistics reported back from wordpress 2.3 bugged

WordPress Trac wp-trac at lists.automattic.com
Thu Oct 4 18:16:45 GMT 2007


#5121: statistics reported back from wordpress 2.3 bugged
---------------------+------------------------------------------------------
 Reporter:  ihad     |        Owner:  anonymous
     Type:  defect   |       Status:  reopened 
 Priority:  normal   |    Milestone:           
Component:  General  |      Version:  2.3      
 Severity:  normal   |   Resolution:           
 Keywords:           |  
---------------------+------------------------------------------------------
Changes (by ihad):

  * status:  closed => reopened
  * version:  => 2.3
  * resolution:  invalid =>

Comment:

 This is wordpress related after all, so I am reopening this ticket.

 ---quote--->
 It was not a K2 bug.

 It's the matter of when $wp_the_query->get_queried_object() is firstly
 called.

 As I mentioned above, $wp_the_query->post is overrode by $post.

 wp-settings.php
 $wp_the_query =& new WP_Query();
 $wp_query     =& $wp_the_query;

 wp-includes/class.php WP::register_globals()
 $GLOBALS['posts'] = & $wp_query->posts;
 $GLOBALS['post'] = & $wp_query->post;

 If a page haven't called $wp_the_query->get_queried_object() before a
 'custom loop' (or something overriding $post or $posts),
 get_queried_object_id() would retun last post id of the 'custom loop'.

 $wp_the_query->get_queried_object() would not stable until it is firstly
 called before any plugin or theme.

 It seems stable 'cause it returns pre-set value if available.

 function get_queried_object() {
         if (isset($this->queried_object)) {
                 return $this->queried_object;
         }

 Because almost wordpress theme use 'wp_title()' for <title> </title> and
 wp_title call 'wp_query->get_queried_object()', there seems no problem.

 For current K2 does not use wp_title() but the_title() which does not call
 'get_queried_object', this issue seems related to K2.

 Here's my suggestion to wordpress and I think it will help make
 $wp_the_query stable.

 wp-includes/classes.php 'WP::query_posts()'

 function query_posts() {
         global $wp_the_query;
         $this->build_query_string();
         $wp_the_query->query($this->query_vars);
         $wp_the_query->get_queried_object();// add this line
 }

 And temporary patch for K2 is replacing the_title() with wp_title() on
 header.php but it will not solve the whole problem.

 <---- endquote from 082net (Thanks man, it worked for me for now).

-- 
Ticket URL: <http://trac.wordpress.org/ticket/5121#comment:5>
WordPress Trac <http://trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list