正在尝试获取非对象WordPress的属性错误消息

时间:2013-02-27 作者:user1609391

我正在运行非常简单的facebook twitter共享按钮。我已按照插件的建议在我的站点上放置了以下代码,即:

<div class="share"><?php echo really_simple_share_publish();?></div>
此插件适用于我的所有网站,但我有一个自定义分类页面,该页面导致插件出现以下错误:

注意:尝试在/home3/answr/public\\u html/wp includes/post模板中获取非对象的属性。php第29行

我已经复习了第29行,下面是我认为正在发生的事情。

我的分类法页面有两个内置的主要自定义查询和两个wordpress循环。这些查询修改了页面的主要wordpress查询。

如果第一个查询没有返回结果,那么如果插件处于活动状态,就会导致上述错误。

然而,如果第一个查询返回结果,那么就没有错误,即使第二个查询返回结果,插件也可以正常工作。

如果插件未激活,无论第一个查询是否返回结果,我都不会收到任何错误。

这是我的代码供参考。一段时间以来,我一直在努力解决这个问题,但我没有任何想法。有没有人知道是什么导致了这个问题,或者我应该尝试解决什么问题。非常感谢。

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

<?php else : ?>

<?php


$paidnull="true";
?>

<?php endif; ?>

<?php

    query_single(\'dealers\', \'draft\', \'0\', $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==0){
    echo "<li><p class=\\"plisting\\"><strong>";the_title();echo "</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 /*Resets current query*/
wp_reset_query(); 
wp_reset_postdata(); 
unset($brands_list);?>

<?php else : ?>

<?php /*If there were no paid dealer and no non-paid dealers we must show a 404 error*/
if ($paidnull=="true")
{
    echo "<h1 class=\\"title\\">There Are No Dealers Found for your Search</h1>";
    echo "<p style=\\"color:#F30\\">Use the search below to search a different area</p>";
    echo "<br />";
}?>
<?php endif; ?>
</div>

1 个回复
SO网友:s_ha_dum

如果不使用原始查询,页面就可以工作,那么您的解决方案非常简单。保留原始查询。您无需覆盖该查询即可创建辅助循环。而不是这样:

query_single(\'dealers\', \'publish\', \'1\', $taxtype, $value);
if (have_posts()) :
    while (have_posts()) : 
        the_post();
您需要:

$myq = new WP_Query($args);
if ($myq->have_posts()) :
    while ($myq->have_posts()) : 
        $myq->the_post();
您可以在页面上任意多次执行此操作,而不必破坏主查询。问题是我不知道single_query 所以我不知道到底是什么$args 应该看起来像。考虑到代码的工作方式,我怀疑single_query 跑步query_posts, 这是非常不鼓励的。它可以很容易地返回一个新的WP_Query 对象供您使用,如果您对其进行了调整。

参考文献

http://codex.wordpress.org/Class_Reference/WP_Query

结束

相关推荐

我的存档-posttype.php模板未加载

我正在尝试创建一个存档照片。我的照片自定义帖子类型的php模板。我的问题是,当我查看页面时,它是归档文件。使用的是php模板,而不是存档照片。php。我只是想要存档照片。查看特定自定义帖子类型的归档页面时要使用的php。我错过了什么?请注意,在最后,我已将照片自定义帖子类型设置为主循环。非常感谢您的时间和帮助。<?php //custom post type add_action( \'init\', \'create_post_type\' ); function crea