我已经创建了一个基于CPT Ui的自定义帖子类型我试着在模板中显示那些项目,理想情况下我希望能够做到的是
www.siteurl.com/profile/profilename
因此,为什么我用以下代码创建了一个模板页面。
但我不知道如何将profilename放入我的查询帖子中,然后显示relivent数据这是我到目前为止已经厌倦了以获取id和永久链接显示但无济于事。
我真的希望能够像文档中所述那样做。理想情况下,我怀疑我最好的方法是检查用户是否在前端创建了一个配置文件,如果没有指示他们这样做?。
显示字段
<p><?php the_field('field_name'); ?></p>
http://www.advancedcustomfields.com/resources/code-examples/
<?php
/**
* Template Name: Profile Page
*/
get_header(); ?>
<?php get_template_part( 'page', 'title' ); ?>
<div class="width-container">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; // end of the loop. ?>
<?php
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'profiles',
'meta_key' => 'profilename',
'meta_value' => 'david'
));
if($posts)
{
echo '<ul>';
foreach($posts as $post)
{
echo '<li><a href="' . get_permalink($post->ID) . '">' . get_the_title($post->ID) . '</a></li>';
}
echo '</ul>';
}
?>
<?php get_sidebar(); ?>
</div><!-- close .width-container -->
<?php get_footer(); ?>
如果有人做了任何类似的事情,也许我应该使用当前用户但是我再也不知道如何将其链接到acf,因为我是该插件的新手
答案 0 :(得分:0)
也许您可以尝试其他方法并使用WP_Query
构建自定义查询。下面的示例使用 WP_Query 对象而不是 get_posts 函数,但参数和逻辑保持不变。
这意味着我们会找到所有帖子类型为profiles
的帖子,其中“自定义字段”profilename
等于david
。在这种情况下,自定义字段“profilename”可以是文本字段,单选按钮或选择字段(保存单个文本值的内容)。
<?php
/**
* Template Name: Profile Page
*/
get_header();
$user = get_post_meta($post->ID, 'profilename', true); // saving the field value in a $variable can help to build a more dynamic WP_Query...
?>
<?php get_template_part( 'page', 'title' ); ?>
<div class="width-container">
<h1>__('Listing Posts by:', 'text_domain');</h1>
<?php echo '<p class="text-center">' . esc_html( $user ) . '</p>'?>;
<?php
// args
$args = array(
'numberposts' => -1,
'post_type' => 'profiles',
'meta_key' => 'profilename',
'meta_value' => $user // retrieve the actual profilename field value
);
// query
$the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<ul>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_query(); // Restore global post data stomped by the_post(). ?>
<?php get_sidebar(); ?>
</div><!-- close .width-container -->
<?php get_footer(); ?>
上面的代码是如何使用名为'profilename'的自定义字段在模板中使用WP_Query对象在WP中查询(&#34;获取并显示&#34;)帖子的示例,其中值为'david'或者根据你的例子在字段中保存的任何数据。
也许你想显示你为WP默认用户个人资料页面创建的自定义字段的相关数据(值),如果是这种情况,你应该采用另一种方法,而不是查询帖子你只需输出用户可能填写其个人资料的字段。为此你可以Get values from a user。
此示例将显示字段&#39; profilename&#39;来自ID为1的用户的值。
<?php the_field('field_name', 'user_1'); ?>
在循环中,您可以使用$user_ID = get_current_user_id();
检索user_id,如下所示:
<?php
/**
* Template Name: Profile Page
*/
get_header();
$user = get_post_meta($post->ID, 'profilename', true); // saving the field value in a $variable can help to build a more dynamic WP_Query...
$user_ID = get_current_user_id();
?>
<?php get_template_part( 'page', 'title' ); ?>
<div class="width-container">
<h5>__('Listing Posts by:', 'text_domain');</h5>
<h1><?php the_field('profilename', '$user_ID'); ?>;</h1> // this will retrieve the data/value saved in the 'profilename' field for the current user
...
检查ACF's Query Posts by Custom Fields文档,了解使用本机WP函数从数据库中检索post对象数组的其他方法。