Php 如何获取作者姓名';谁的帖子?
我有一个网站,用户没有登录,他们可以张贴,我使用的插件称为。但是,他们的帖子被认为是管理员发布的,因为在他们提交的表单中,他们可以插入自己的名字,wordpress会在管理员面板中显示他们的名字 通过这样做,我可以得到一个姓名列表:Php 如何获取作者姓名';谁的帖子?,php,wordpress,Php,Wordpress,我有一个网站,用户没有登录,他们可以张贴,我使用的插件称为。但是,他们的帖子被认为是管理员发布的,因为在他们提交的表单中,他们可以插入自己的名字,wordpress会在管理员面板中显示他们的名字 通过这样做,我可以得到一个姓名列表: <ul> <?php $args= array( 'posts_per_page' => -1 ); query_posts($args); ?> <?php if ( have_posts() ) : while (
<ul>
<?php
$args= array(
'posts_per_page' => -1
);
query_posts($args);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<?php echo get_the_author(); ?>
</li>
<?php endwhile; ?> <?php endif; ?>
</ul>
发生这种情况是因为这些用户不是实际用户,他们是代表管理员发布的
那么,如何根据管理员面板上显示的作者姓名而不是注册用户的姓名来获取每篇文章的链接呢?作者姓名设置在名为
user\u submit\u name
的自定义字段(元表)中,因此,如果您通过'meta\u key'=>'user\u submit\u name'
和'meta\u value'=>'John Doe'
过滤帖子,那么您将只获得该作者的帖子
get\u theu author
返回正确值的原因是该插件连接到The\u author
并从元字段返回真实值
您可以查询将某个元字段设置为某个值的帖子,如下所示:
$my_query = new WP_Query(array(
'meta_key' => 'user_submit_name',
'meta_value' => 'John Doe',
'meta_compare' => '='
));
有关WP_查询的详细信息如下所示
不要忘记按此处所述执行wp\u reset\u postdata
此外,如前所述,您可以使用$my\u query->found\u posts
获取计数
答对了
$args=array(
“每页帖子”=>-1
);
查询职位($args);
if(have_posts()):while(have_posts()):the_post();?>
假设我手动插入“meta\u值”,如果我想自动获取meta\u值呢?
get\u作者已经这样做了。只需使用'meta\u value'=>获取作者()
。这是不起作用的“meta\u value'=>获取作者(),因为我尝试了一个名称,它确实找到了一个帖子。你在循环中这样做,对吗?(while…endwhile
)让我们
Name1 22
Name2 22
Name3 22
Name4 22
$my_query = new WP_Query(array(
'meta_key' => 'user_submit_name',
'meta_value' => 'John Doe',
'meta_compare' => '='
));
$args= array(
'posts_per_page' => -1
);
query_posts($args);
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<?php
$args = array(
'posts_per_page' => -1,
'meta_key' => 'user_submit_name',
'meta_value' => get_the_author(),
'meta_compare' => '='
);
$myquery = new WP_Query($args);
echo '<h3>' . $myquery->found_posts . ' proposte da ' . get_the_author() . '</h3><br>';
while ( $myquery->have_posts() ) {
$myquery->the_post();
echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
?>
<?php wp_reset_postdata(); ?>
</li>