Hinweis zu WordPress: Es wird versucht, Eigentum an einem Nicht-Objekt zu erlangen

Lesezeit: 4 Minuten

Benutzer-Avatar
Benutzer1609391

Ich habe in meinem Blog einen benutzerdefinierten Beitragstyp und eine spezielle Seite für die Taxonomie eingerichtet. Auf der Taxonomieseite erhalte ich den folgenden Fehler. Kann mir jemand Tipps geben, wie ich diesen Fehler beheben kann?

Die Seite lädt gut und funktioniert wie erwartet. Aber ich erhalte den folgenden Fehler, wenn ich debug auf true gesetzt habe. Ich möchte dies lösen. Ich habe die Kosten aus der Schleife eingefügt, die zweimal mit unterschiedlichen Kriterien auf der Seite ausgeführt wird.

Notice: Trying to get property of non-object in /home3/ans/public_html/wp-includes/post-template.php on line 29

Code:

<?php
query_single('dealers', 'publish', '1', $taxtype, $value);
 ?>

 <?php if (have_posts()) : ?>
 <?php while (have_posts()) : the_post(); ?>

 <?php 
   $address=get_post_meta($post->ID, 'wpcf-street_address', TRUE); 
   $city=get_post_meta($post->ID, 'wpcf-city', TRUE); 
   $state=get_post_meta($post->ID, 'wpcf-state_abbreviation', TRUE); 
   $zip=get_post_meta($post->ID, 'wpcf-zip_code', TRUE); 
   $phone=get_post_meta($post->ID, 'wpcf-phone_number', TRUE); 
   $paid=get_post_meta($post->ID, 'wpcf-paid', TRUE);
   $post_id=get_the_ID();
   get_each_dealer_brand($post_id);?>

  <?php 
  echo "<ul class=\"ullisting\">";
  if($paid==1)
  {
   echo "<li><p class=\"plisting\"><strong><a href=\"";the_permalink(); echo  "\">";the_title();echo "</a></strong></p></li>";
    echo "<li><p class=\"plisting\">$address | $city, $state $zip</p></li>";
echo "<li><p class=\"plisting\">P: $phone</p></li>";
    echo "<li><p class=\"listing\"><span><small>$brands_list</small></span></p></li>";
 }
echo "</ul>";
?>

 <?php endwhile; ?>

 <?php
 wp_reset_query(); 
 wp_reset_postdata(); 
 unset($brands_list);
 ?>

Dies ist die oben genannte Funktion:

   function query_single($posttype, $poststatus, $paidvalue, $taxtype, $value) {

     global $wp_query;
    $wp_query = new WP_Query();
  $args = array(
   'post_type' => $posttype,
   'post_status' => array($poststatus),
   'orderby' => 'rand', 
   'posts_per_page' => 20,
   'meta_query' => array(
       array(
           'key' => 'wpcf-paid',
           'value' => array($paidvalue),
           'compare' => 'IN',
       )
   ),
    'tax_query' => array(
            array(
                'taxonomy' => $taxtype,
                'field' => 'slug',
                'terms' => $value
            )
        )
    );
   return $wp_query->query($args);
   }

  • Bitte zeigen Sie uns den Code. Ohne das ist Hilfe nicht möglich

    – Sankalp Mischra

    18. Februar 2013 um 6:16 Uhr

  • @ SankalpMishra Vielen Dank für die Antwort. Ich will nicht dumm klingen, aber dieser Fehler wirft mich aus der Fassung. Meine Taxonomie-Seite enthält viel Code, und ich möchte nicht nur eine Menge Code einfügen, der nicht erforderlich ist. Aber dies verweist auf wp-includes/post-template.php. Nicht ganz sicher, was das ist. Könnt ihr mir empfehlen, wo ich den Code posten soll? Vielen Dank!

    – Benutzer1609391

    18. Februar 2013 um 6:41 Uhr


  • Vielleicht können Sie uns Post-Template-Zeilen mit dem Fehler zeigen, z. B. Zeile 29

    – Sankalp Mischra

    18. Februar 2013 um 6:43 Uhr

  • Möglicherweise gibt es ein Problem auf der ttaxonomy-Seite von dem Teil, in dem Sie versuchen, auf die Beiträge zuzugreifen.

    – Sankalp Mischra

    18. Februar 2013 um 6:46 Uhr

  • @SankalpMishra Ich habe die Taxonomieseite aktualisiert, auf der die Schleife stattfindet, höchstwahrscheinlich der Ort, an dem der Beitrag aufgerufen wird. Diese exakte Schleife wird zweimal auf der Taxonomieseite mit Differenzkriterien in ausgeführt query_single('dealers', 'publish', '1', $taxtype, $value);

    – Benutzer1609391

    18. Februar 2013 um 7:08 Uhr

Dieser Fehler tritt auf, wenn Sie versuchen, auf Beiträge in Ihrem Design zuzugreifen.

in page-template.php wir haben,

function get_the_ID() {
    return get_post()->ID;
}

Wann immer wir auf Beiträge zugreifen, müssen wir die folgende Bedingung überprüfen und sicherstellen, dass sie standardmäßig funktioniert, da wir sie möglicherweise nicht verwenden wp_reset_postdata(); die ganze zeit also,

  global $post;    
//check if post is object otherwise you're not in singular post
  if( !is_object($post) ) 
     return;
//If Object
  $somevariable = get_post_meta(get_the_ID(), $something->get_the_id(), TRUE); 

Hoffe das hilft. Vielen Dank.

Sie können versuchen, Ihre Befehle darin auszuführen AKTION (weil WordPress zu diesem Zeitpunkt bereits normal geladen ist). so was:

ADD_ACTION('init','your_function');

function your_function(){
    YOUR CODES HEREEEEEEEEEEE............
}

1351840cookie-checkHinweis zu WordPress: Es wird versucht, Eigentum an einem Nicht-Objekt zu erlangen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy