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

如何在WordPress主题中使用EDD Restrict Content短代码?

正确在WordPress主题中嵌入EDD Restrict短代码的方法

你之前的代码存在两个核心问题:

  1. 语法错误:<?php =echo 是无效写法,正确的PHP输出语法为 <?php echo
  2. 内容处理错误:直接拼接未定义的sample text无法生成实际的下载链接内容

正确的实现方式是先捕获下载链接代码的输出内容,再将其传入EDD Restrict短代码中执行,以下是可直接放入single.php对应位置的完整代码:

<?php
// 开启输出缓冲,捕获后续代码的输出内容
ob_start();
?>
<li>
    <?php if(get_post_meta($post->ID, 'download', true) != ""): ?>
        <a href="<?php echo get_post_meta($post->ID, 'download', true); ?>">直接下载链接</a>
    <?php endif; ?>
    
    <?php if(get_post_meta($post->ID, 'download32', true) != ""): ?>
        <a href="<?php echo get_post_meta($post->ID, 'download32', true); ?>">32位版本直接链接 / </a>
    <?php endif; ?>
    
    <?php if(get_post_meta($post->ID, 'download64', true) != ""): ?>
        <a href="<?php echo get_post_meta($post->ID, 'download64', true); ?>">64位版本直接链接</a>
    <?php endif; ?>
    
    <?php if(get_post_meta($post->ID, 'downloadwin', true) != ""): ?>
        <a href="<?php echo get_post_meta($post->ID, 'downloadwin', true); ?>">Windows版本下载</a>
    <?php endif; ?>
</li>
<?php
// 获取缓冲中的输出并关闭缓冲
$download_links = ob_get_clean();

// 执行EDD Restrict短代码,传入捕获的下载链接内容
echo do_shortcode( '[edd_restrict id="any"]' . $download_links . '[/edd_restrict]' );
?>

代码说明:

  • 用ob_start()和ob_get_clean()捕获下载链接模块的HTML输出,避免直接echo导致内容无法嵌入短代码
  • 将捕获的内容拼接进EDD Restrict短代码字符串,通过do_shortcode()执行短代码实现内容限制
  • 把原代码中的非中文文本替换为中文,适配国内站点使用
  • 改用if...endif语法,让模板代码更易读

内容的提问来源于stack exchange,提问作者Hamoon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:54:22