我在博客上设置了自定义帖子类型,并为分类标准设置了特殊页面。在分类法页面上,我收到以下错误。谁能给我一些关于如何解决这个错误的提示?
页面加载正常并按预期工作。但是如果我将调试设置为true,我会得到以下错误。我想解决这个问题。我粘贴了循环中的成本,该循环在页面上以不同的标准运行两次。
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);
}
答案 0 :(得分:3)
当您尝试访问主题中的帖子时会出现此错误,
我们拥有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);
希望这会有所帮助。感谢。
答案 1 :(得分:0)
您可以尝试在 ACTION 中执行命令(因为当时已经正常加载了wordpress)。 像这样:
ADD_ACTION('init','your_function');
function your_function(){
YOUR CODES HEREEEEEEEEEEE............
}