我想在侧边栏文本小部件中查询信息。我添加了函数。php查询正在运行。(参见下面的代码)
我有一篇关于品酒的帖子。我想在右侧边栏中显示是哪个酒窖生产的。我添加了相同的自定义字段键cellar_slug
和价值somloi-apatsagi-cellar
每个帖子。下面的代码可以显示酒窖。
但我如何在所有帖子上使用?每个帖子都有不同的元价值。有没有使用当前post meta值而不是固定值的解决方案?
<?php
$cellars = new WP_Query(array(
\'post_type\' => \'post\',
\'numberposts\' => -1,
\'posts_per_page\' => \'1\',
\'meta_query\' => array(
array(
\'key\' => \'cellar_slug\',
\'value\' => \'somloi-apatsagi-cellar\',
)),
\'orderby\' => \'menu_order\',
\'order\' => \'ASC\'
));
if ($cellars->have_posts()) : ?>
<u1>
<?php
while ($cellars->have_posts()) :
$cellars->the_post(); ?>
<li><h3><a href="<?php the_permalink(); ?>">
<?php the_title(); ?></a></h3><?php the_post_thumbnail(\'widget-text-post-thumbnail\'); ?><?php the_excerpt(); ?>
</li>
<?php endwhile; ?>
</u1>
<?php endif; ?>
最合适的回答,由SO网友:s_ha_dum 整理而成
你的问题有点难读,但如果我在一个帖子页面上理解你的话,这应该可以:
$obj = get_queried_object();
if (\'WP_Post\' === get_class($obj)) {
$cellar = get_post_meta($obj->ID,\'cellar_slug\',true);
if (!empty($cellar)) {
$cellars = new WP_Query(
array(
\'post_type\' => \'post\',
\'numberposts\' => -1,
\'posts_per_page\' => \'1\',
\'meta_query\' => array(
array(
\'key\' => \'cellar_slug\',
\'value\' => $cellar,
)
),
\'orderby\' => \'menu_order\',
\'order\' => \'ASC\'
)
);
}
}
您是:
使用get_queried_object()
要获取主要帖子数据,请使用get_post_meta()
检索与Post关联的cellar,并仅在您有cellar时运行查询