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

求助:Jet Engine QR模块生成文章URL动态二维码的代码无法生效

修复Jet Engine动态生成文章URL二维码的代码问题

原代码存在的错误点

  • 钩子函数拼写错误:add_filer 应为 add_filter,且回调函数名与定义不匹配
  • 变量名错误:add_custom_dynamic_field_callbacks 函数中返回的是未定义的$callback,应改为$callbacks
  • 函数名拼写错误:add_cutom_control 应为 add_custom_control,与对应的action钩子回调名不匹配
  • 滑块参数拼写错误:滑块范围的nis、nax应为min、max
  • 条件数组语法错误:condition数组中'dynamic_field_filter' => 'yes'后缺少逗号
  • 钩子名拼写错误:jet-engine/listing/dynamic-field/callback-controlls 应为 jet-engine/listing/dynamic-field/callback-controls
  • 未初始化变量:url_as_qr函数中若Jet_Engine_Module_QR_Code类不存在,$result未定义会引发报错

修正后的完整代码

add_filter( 'jet-engine/listings/allowed-callbacks', 'add_custom_dynamic_field_callbacks' );

add_filter( 'jet-engine/listing/dynamic-field/callback-args', 'add_custom_dynamic_field_callbacks_args', 10, 3);

add_action( 'jet-engine/listing/dynamic-field/callback-controls', 'add_custom_control', 10, 1 );


function add_custom_dynamic_field_callbacks( $callbacks) {
    $callbacks['url_as_qr'] = 'Post URL as Qr-code';
    return $callbacks;
}

function url_as_qr( $value, $code_size) {
    $result = '';
    if ( class_exists( 'Jet_Engine_Module_QR_Code') ) {
        $qr = new Jet_Engine_Module_QR_Code();
        $result = $qr->get_qr_code( $value, $code_size['size'] );
    }
    return $result;
}

function add_custom_dynamic_field_callbacks_args( $result, $callback, $settings) {
    if ($callback === 'url_as_qr') {
        $result = array( get_permalink(), $settings['code_size'] );
    }
    return $result;
}
    
function add_custom_control( $controls ) {
    
    $controls->add_control(
        'code_size' ,
        array(
            'label' => 'QR_Code_Size',
            'type'  => 'slider',
            'range' => array(
                'px' => array(
                    'min' => 50,
                    'max' => 400,
                ),
            ),
            'condition' => array(
                'dynamic_field_filter' => 'yes',
                'filter_callback'      => array( 'url_as_qr'),
            ),
        )
    );
}

使用方法

  1. 安装并激活Code Snippets插件
  2. 进入插件的「添加新片段」页面
  3. 将上述修正后的代码粘贴到代码框中,设置片段名称(如「Jet Engine 文章URL二维码」)
  4. 选择「仅运行在前端」或「运行在整个站点」,点击「保存并激活」
  5. 在Jet Engine的列表项编辑中,添加动态字段,选择「自定义回调」,并选择url_as_qr选项,即可通过滑块调整二维码尺寸

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:55:32