我正在使用高级自定义字段,并试图在单个帖子下方显示自定义字段。我设法让代码在帖子下面呈现,但当我设置字段时movie_actors
然后保存,刷新后整个页面变为空白,虽然我已经启用了调试模式,但它不会在屏幕上显示任何错误。我的字段设置为User Object
在ACF内部,字段类型为user
.我想做的是在Ultimate Member中显示一个指向用户配置文件的链接。为了以防万一,我还尝试显示一个指向默认wordpress用户配置文件的链接,它也给出了相同的结果。
我在我的自定义函数插件(相当于functions.php)中这样做。
我将把这两个代码都留在这里,以防万一:
这是一个终极成员插件:
function wpb_after_post_content($content){ if (is_single()) {
global $post;
$content .= \'<p>CAST</p>\' .
\'<div id="meta-coauthor"><span class="metacoauteur">\' .
$values = get_field(\'movie_actors\', $post->ID);
if($values) {
foreach($values as $value) {
$author_ID = $value[\'ID\'];
um_fetch_user( $author_ID) . \'<a href="\'.um_user_profile_url( ).\'">\' . um_user("display_name") . \'</a>\';
}
};
\' </span>
</div>\';
}
return $content;
}
add_filter( "the_content", "wpb_after_post_content", 9999 );
add_theme_support( \'post-thumbnails\' );
set_post_thumbnail_size( 100, 50, true );
这是默认Wordpress用户配置文件:
function wpb_after_post_content($content){ if (is_single()) {
global $post;
$content .= \'<p>CAST</p>\' .
\'<div id="meta-coauthor"><span class="metacoauteur">\' .
$values = get_field(\'movie_actors\', $post->ID);
if($values) {
foreach($values as $value) {
$author_ID = $value[\'ID\'];
$author_url = esc_url( get_author_posts_url($author_ID) ) . \' <a href="\'.$author_url.\'">\' . $value[\'display_name\'] . \'</a>\';
}
};
\' </span>
</div>\';
}
return $content;
}
add_filter( "the_content", "wpb_after_post_content", 9999 );
add_theme_support( \'post-thumbnails\' );
set_post_thumbnail_size( 100, 50, true );
最合适的回答,由SO网友:Steck Insights Web Design 整理而成
我认为您在foreach循环中设置的变量的语法是错误的。由于引用的是对象而不是数组,因此需要使用以下格式:
$author_ID = $value->ID
还有。。。
$value->display_name
我们还发现foreach循环不是必需的,所以我将其从答案中删除。
另一个问题是如何传递内容。也许是我缺乏经验,但我发现更容易参考$“内容”;更多的时候,我会附加更多的变量。你试图在整个论点中把它联系起来,虽然这让我更加困惑,但它也不起作用(这就是造成空白页的原因)。
尝试以下操作:
function wpb_after_post_content($content){ if (is_single()) {
global $post;
$content .= \'<p>CAST</p>\' .
\'<div id="meta-coauthor"><span class="metacoauteur">\';
$actor_obj = get_field(\'movie_actors\', $post->ID);
echo \'<pre>\';
var_dump($actor_obj);
echo \'</pre>\';
if($actor_obj) {
$author_ID = $actor_obj->ID;
$author_url = esc_url( get_author_posts_url($author_ID) );
$content .= \' <a href="\'.$author_url.\'">\' . $actor_obj->display_name . \'</a>\';
};
$content .=\' </span>
</div>\';
}
return $content;
}
add_filter( "the_content", "wpb_after_post_content", 9999 );
add_theme_support( \'post-thumbnails\' );
set_post_thumbnail_size( 100, 50, true );
如果对你有用,请告诉我。
我没有Ultimate成员,因此无法测试该代码,但如果您在默认的WordPress屏幕上运行该代码,那么就不远了。