You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress多站点下创建multisite-pod及template.php调用示例咨询

多站点环境下Pods(multisite-pod)创建及调用实操指南

前置配置确认

操作前先确认基础配置符合要求:

  • 站点多站点配置按你给出的规则完成,已配置define('DOMAIN_CURRENT_SITE', 'network.example.org');
  • Pods插件在网络管理层面全局启用,进入Pods设置页勾选「开启网络级Pod共享」选项

多站点共用Pod创建步骤

不用给每个子站点单独创建Pod,直接在主站配置网络级共用Pod即可:

  • 登录network.example.org后台,进入「Pods > 新增Pod」
  • 按需选择创建自定义内容类型或者给已有内容类型加自定义字段组,勾选「网络全域可用」选项后保存
  • 进入字段编辑页,添加所需的4个自定义字段:
    • 字段标识name,显示名称自定义,字段类型选「单行文本」
    • 字段标识content,显示名称自定义,字段类型选「富文本编辑器」
    • 字段标识link_german,显示名称自定义,字段类型选「URL」
    • 字段标识link_english,显示名称自定义,字段类型选「URL」
  • 保存Pod配置后,进入网络管理的「站点 > 所有站点」,给example.org、example.de两个子站点开启该Pod的访问权限,避免子站无权限读取字段

template.php调用Pod的具体代码示例

场景1:当前站点调用自身的Pod内容

以下代码可直接放在对应页面模板中,会自动根据当前站点域名匹配对应语言的链接:

// 替换括号内内容为你实际创建的Pod别名,第二个参数为内容的ID
$current_pod = pods( '你的自定义Pod别名', get_the_ID() );

// 读取基础字段内容
$name = $current_pod->field( 'name' );
$content = $current_pod->field( 'content' );

// 根据当前站点域名匹配对应链接
$current_domain = sanitize_text_field( $_SERVER['HTTP_HOST'] );
if ( $current_domain === 'example.de' ) {
    $output_link = $current_pod->field( 'link_german' );
} else {
    $output_link = $current_pod->field( 'link_english' );
}

// 安全输出内容
if ( ! empty( $name ) ) {
    echo '<h3>' . esc_html( $name ) . '</h3>';
}
if ( ! empty( $content ) ) {
    echo '<div class="pod-custom-content">' . wp_kses_post( $content ) . '</div>';
}
if ( ! empty( $output_link ) ) {
    echo '<a href="' . esc_url( $output_link ) . '" target="_blank" rel="noopener">查看详情</a>';
}

场景2:子站点调用主站(network.example.org)的共用Pod内容

如果Pod内容统一在主站维护,子站需要跨站读取的话用以下代码:

// 切换到主站点,1为主站默认ID,可在网络管理站点列表查看实际ID
switch_to_blog( 1 );

// 读取主站的Pod内容,替换Pod别名和目标内容ID
$network_pod = pods( '你的自定义Pod别名', $主站对应内容的ID );
$name = $network_pod->field( 'name' );
$content = $network_pod->field( 'content' );
$de_link = $network_pod->field( 'link_german' );
$en_link = $network_pod->field( 'link_english' );

// 必须执行切回当前站点的操作,否则后续页面逻辑会出错
restore_current_blog();

// 按需输出内容即可,匹配域名逻辑和上方场景1一致

常见问题注意事项

  • 自定义字段标识不要用空格、括号等特殊字符,推荐用下划线命名,避免读取失败
  • 跨站调用Pod时switch_to_blog()和restore_current_blog()必须配对使用,禁止只切换不恢复
  • 如果需要批量获取Pod内容,可以用pods()的find()方法,参数写法和单站点环境完全一致

内容的提问来源于stack exchange,提问作者Konstantin-007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 03:39:03