本文介绍如何通过简单的条件判断,根据用户选择的选项(如“profile”或“list”)动态调用不同方法获取推文数据,并统一赋值给同一变量,从而复用后续的遍历逻辑。
在 WordPress 或类似 CMS 环境中,常需根据后台字段配置灵活切换数据源。例如,你提供了一个自定义字段 show_tweets_for,其值为 'profile'(默认)或 'list',分别对应两种 Twitter 数据获取方式:
两者返回结构一致的对象,均支持通过 ->data 访问推文数组。因此,理想方案是在初始化阶段完成分支判断,确保 $tweets 变量始终持有有效且结构兼容的数据对象
,避免在循环中重复判断。
推荐写法(简洁、可读、无冗余):
$tweets_option = get_field('show_tweets_for'); // 返回 'profile' 或 'list'
$tweets = $tweets_option === 'list'
? Twitter::get_user_first_list_tweets()
: Twitter::get_tweets(); // 默认为 profile,符合业务要求✅ 优势说明:
⚠️ 注意事项:
$tweets = $tweets_option === 'list'
? Twitter::get_user_first_list_tweets()
: Twitter::get_tweets();
// 安全兜底:确保 $tweets 是对象且包含 data 数组
$tweets_data = is_object($tweets) && isset($tweets->data) && is_array($tweets->data)
? $tweets->data
: [];最后,你的模板循环保持简洁不变:
text ?? ''); ?>
暂无推文。
这种设计兼顾了灵活性、健壮性与可维护性,是处理多源同构数据的典型实践。