多站点-Echo管理员配置文件元

时间:2014-01-22 作者:730wavy

我在自定义帖子类型模板中回显管理员的配置文件元时遇到问题。它过去很管用,但由于某种原因,它不再管用了。我不知道有什么变化会导致这种行为。

这是我在循环中使用的代码:

<p>
<?php
$thisblog = $current_blog->blog_id;
$user_id_from_email = get_user_id_from_string( get_blog_option($thisblog, \'admin_email\'));
$phone_number = get_user_meta($user_id_from_email, \'phone\', true);
if($phone_number!=\'\') { ?>
<?php echo $phone_number; ?>
<?php } else { ?>
<?php } ?></p>
我也尝试过:

<?php
global $current_blog;
$thisblog = $current_blog->blog_id;
$user_id_from_email = get_user_id_from_string( get_blog_option($thisblog, \'admin_email\'));
$details = get_userdata($user_id_from_email);
if ($details->nickname) echo $details->nickname;
?>
还有这个:

<?php
global $current_blog;
$thisblog = $current_blog->blog_id;
$user_id_from_email = get_user_id_from_string( get_blog_option($thisblog, \'admin_email\'));
$firm_name = get_user_meta($user_id_from_email, \'nickname\', true);
if($firm_name!=\'\') { ?>
<?php echo $firm_name; ?>
<?php } else { ?>
<?php } ?>
这没有任何回应。以下代码回显了一些数据,但似乎是针对超级管理员的:

<?php $user_info = get_userdata(1);
      echo $user_info->last_name .  ", " . $user_info->first_name . "\\n";
?>
有什么问题吗?

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

根据法典,get_user_id_from_string() 已弃用,应替换为get_user_by().

<p>
<?php
$thisblog = get_current_blog_id();  // probably don\'t need this anymore
$admin_email = trim( get_option( \'admin_email\' ) );
$admin_user = get_user_by( \'email\', $admin_email ) );
$phone_number = get_user_meta($admin_user->ID, \'phone\', true);
if($phone_number!=\'\') { ?>
<?php echo $phone_number; ?>
<?php } else { ?>
<?php } ?></p>
我还替换了你的get_blog_option() 使用更简单的get_option(), 自从get_blog_option() 基本上是这样的switch_to_blog(), get_option(), 和restore_current_blog(). 由于您一直在关注当前博客中的信息switch_to_blog()restore_current_blog() 都是多余的。

如果此代码不起作用,请执行一些调试--加载项var_dump( $admin_email) 验证get_option() 取回某物等。

Edited to respond to comments

在WordPress Multisite中创建新站点时,系统会要求您提供管理电子邮件地址。该用户将被指定为站点的第一个管理员。但是,如果该用户随后从站点中删除,则admin_email 选项未从数据库中删除。

在中检查用户列表wp-admin 页面,并确保实际上有一个管理员级别的用户,其电子邮件地址与您从var_dump( $admin_email ); 呼叫如果有,请计算电子邮件地址中的字符数。我想知道您是否看到了空格问题(例如,在$admin_email 或者别的什么)。我添加了trim() 对于代码示例,我可能正在抓紧救命稻草。

结束

相关推荐

Multiple single templates?

假设我有一个名为“事件”的自定义帖子类型,它有几个用于图像、文档等的自定义元框。。是否可能有两个不同的单一模板?例如:我有一个列出所有事件的页面,如果我单击一个事件,单一视图将显示我在event single中输入的所有元信息。php模板。现在,我想有一个不同的页面,再次列出所有事件,但如果我单击查看单个事件,则会使用不同的模板,以便显示与事件相关的其他元数据。或更好:page-events.php lists all events -> click on event -> shows sin