在WordPress定制API中创建数组?

时间:2017-08-18 作者:Ahmed Ramy

我试图在wordpress自定义中创建一个数组。php我确实在函数中使用了wp\\u localize\\u脚本。php如下

    function mytheme_scripts() {

    wp_register_script(\'scripts\', get_template_directory_uri() . \'/assets/js/scripts.js\', \'jquery\');

    $my_array = array( \'zoom\' => get_theme_mod(\'zoom\'), \'letter-spacing\' => \'letter-spacing\', \'rotate\'  => \'rotate\', \'left\' => \'left\' );
    wp_localize_script( \'scripts\', \'effect\', $my_array );

    wp_enqueue_script(\'scripts\');
}
add_action( \'wp_enqueue_scripts\', \'mytheme_scripts\' );
在脚本中。js我正在尝试使用此

scrollorama.animate(\'.para-welcome\',{
    delay: 200, duration: 300, property:\'var para = effect.zoom;\', start:0
});
我的设置和控件是

        $wp_customize->add_setting( \'parallax_effect\' , array(
        \'default\'     => \'zoom\',
        \'transport\'   => \'postMessage\',
    ) );

    $wp_customize->add_control( \'parallax_effect\', array(
        \'label\' => \'Parallax effect\',
        \'section\'   => \'mytheme_welcome\',
        \'settings\'  => \'parallax_effect\',
        \'type\'      => \'select\',
        \'choices\'    => array(
            \'zoom\' => \'zoom\',
            \'letter-spacing\' => \'letter-spacing\',
            \'rotate\' => \'rotate\',
            \'left\' => \'left\',
        ) 
    ) );
但它还不起作用,我使用了我找到的所有解决方案,但没有任何更改,我需要添加选择菜单来更改任何部分的视差效果,请任何人帮忙

1 个回复
SO网友:Howdy_McGee

因此,有两个特定于定制器的挂钩,具体取决于您想要做什么。

这个customize_controls_enqueue_scripts 完全一样wp_enqueue_scripts 但它在控制面板(左侧)框架中排队。我建议你customize-controls 脚本以确保您的脚本可以访问它们:

function theme_customizer_control_scripts() {
    wp_enqueue_script( \'scirpt-slug\', $scirpt_url, array( \'jquery\', \'customize-controls\' ), false, true );
}
add_action( \'customize_controls_enqueue_scripts\', \'theme_customizer_control_scripts\' );
  • The Codex - customize_controls_enqueue_scripts
  • Dev Resourcescustomize_preview_init 在此处,您可以在控件更改时修改自定义程序预览面板:

    function theme_customizer_preview_scripts() {
        wp_enqueue_script( \'scirpt-slug\', $scirpt_url, array( \'jquery\' ), false, true );
    }
    add_action( \'customize_preview_init\', \'theme_customizer_preview_scripts\' );
    

    如果您试图在运行中将元素从控件更改为previewer,则需要将以下脚本排队/将以下代码添加到previewer端。在那里排队后,您应该可以访问wp.customize 对象,并可以正常使用jQuery:

    jQuery( window ).ready( function( $ ) {
    
        // WP Customize Manager JS Object
        var customizer = wp.customize;
    
        // Assign things by the Customize Control ID
        customizer( \'parallax_effect\', function( control ) {
    
            // Bind some kind of event
            control.bind( function( value ) {
    
                if( \'zoom\' === value ) {
                    // Do something
                    $( \'body\' ).addClass( value );
                }
    
            } );
    
            // This will set the initial state. It\'s very heavy
            // I do not recommend doing this for multiple controls
            // Or at all... But it exists so I\'m adding it to this answer
            $( control ).trigger( \'change\' );
        }
    
    } );
    

结束

相关推荐

PHP-循环jQuery选项卡中的自定义POST类型类别

我有一个名为“产品”的自定义帖子类型在产品中有一个名为“子类别”(selsubcat)的自定义字段,其中包含14个不同的类别。这些类别包括:;CAM/REC/ACC/SWH/NET/MON/HDMI/ENC/SIGNS/PIR/WIFI/POLE/SOUND。我试图在不同的选项卡中显示所有产品,其中选项卡是子类别,每个选项卡将显示该类别的产品。目前,我已经定义了meta_value 作为“CAM”,这将显示#tabs-1 div-正确。我现在需要以某种方式循环每个类别,并在其他13个选项卡中显示产品。所以