我是wordpress的新手。我正在尝试从function.php加载帖子的自定义字段。下面是我使用自定义字段的函数后网格布局函数的代码:
$args = array(
'post_type' => 'post',
'category_name' => 'category',
'posts_per_page' => -1,
'orderby' => 'ID',
'order' => 'ASC'
);
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
$c = 1;
$bpr = 5;
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<div class="member">
<div class="div-block-image">
<?php the_post_thumbnail(); ?>
</div>
<div class="div-block-29 w-clearfix">
<div class="text-block-21"><?php the_title(); ?></div>
<div class="text-block-22">subTitle</div>
<div class="text-block-23">Text...</div>
<a href="<?php the_permalink() ?>" class="more w-inline-block">
<div class="text-block-24">More</div>
</a>
<p><?php echo get_post_meta($post->ID, 'linkedin', true); ?></p> // custom-field
<p><?php echo get_post_meta($post->ID, 'bio', true); ?></p>
<a href="#" target="_blank" class="link-block w-inline-block">
<div class="biotxt">bio</div>
</a>
<a href="#" target="_blank" class="link-block w-inline-block">
<div class="text-block-20"></div>
</a>
</div>
</div>
<?
if( $c == $bpr ) {
echo '<div class="clear"></div>';
$c = 0;
}
$c++;
endwhile;
} else {
_e( '<h2>Oops!</h2>', 'rys' );
_e( '<p>Sorry, seems there are no post at the moment.</p>', 'rys' );
}
wp_reset_postdata();
我想从模板页面加载此功能。除自定义字段外,其他所有文件都正常加载:
<p><?php echo get_post_meta($post->ID, 'linkedin', true); ?></p>
如果从模板页面运行功能代码,则其运行正常。有什么想法吗?
答案 0 :(得分:0)
$post->ID
是不正确的,因为它是从全局$ post对象中获取ID,当您在模板页面上时该ID恰好相同,但在使用时不一定如此在functions.php中的函数中。请改用get_the_ID()
。
答案 1 :(得分:0)
在您的自定义循环中,您将希望更新使用的内容: get_the_ID(),而不是 $ post-> ID 。
<p><?php echo get_post_meta(get_the_ID(), 'linkedin', true); ?></p>
这将从当前循环中获取ID。
参考:https://developer.wordpress.org/reference/functions/get_the_id/