4

ブログと分類法の特別なページにカスタム投稿タイプを設定しています。分類法のページで、以下のエラーが発生します。誰かがこのエラーを解決する方法についていくつかのヒントを教えてもらえますか?

ページは正常に読み込まれ、期待どおりに機能します。しかし、デバッグをtrueに設定すると、以下のエラーが発生します。これを解決したいと思います。異なる基準でページに2回実行されるループからのコストを貼り付けました。

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

コード:

<?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);
 ?>

これは、上記で参照されている関数です。

   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);
   }
4

2 に答える 2

5

テーマ内の投稿にアクセスしようとすると、このエラーが発生します。

私たちがpage-template.php持っている、

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

投稿にアクセスするときはいつでも、以下の条件をチェックし、それがデフォルトで機能することを確認する必要がありますwp_reset_postdata();

  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); 

お役に立てれば。ありがとう。

于 2014-06-26T08:02:05.377 に答える
0

ACTION内でコマンドの実行を試みることができます(その時点で wordpress は既に正常にロードされているため)。このような:

ADD_ACTION('init','your_function');

function your_function(){
    YOUR CODES HEREEEEEEEEEEE............
}
于 2015-12-18T20:15:04.013 に答える