Wordpress,使用表单来控制JQuery脚本

时间:2013-10-29 15:10:13

标签: javascript php jquery wordpress

考虑一下web开发和wordpress的新手。

我正在开发一个随机更改元素文本颜色的插件。它运作良好但现在几乎是静止的。现在我想为其他元素添加此功能,就像帖子标题一样。

如何从管理菜单表单中的选项控制javascript .js文件中的条件。比如说我想为帖子标题添加该功能,所以用户将有一个带有2个复选框的表单,一个用于博客标题和其他帖子标题。

我准备好了复选框,脚本用于标题,只需将这些复选框值传递给该js文件。

提前致谢。

Javascript文件代码:

jQuery(document).ready(function($){

var $ttl = '.site-title a';

var rainbow = function(){
    var $rrr = Math.round(((Math.random()*200)));
    var $ggg = Math.round(((Math.random()*200)));
    var $bbb = Math.round(((Math.random()*200)));
    var $r = "'rgb(" + $rrr + ", " + $ggg + ", " + $bbb + ")'";
    $($ttl).animate({color: $r},"slow");
}

$($ttl).mouseenter(
    function(){
        rainbow()
    }
);
});

我的插件php文件:

if ( ! function_exists( 'rainbow_title_script' ) ) {
function rainbow_title_script() {
    wp_enqueue_script(
        'rainbow_title_script',
        plugins_url( '/rainbow_title.js' , __FILE__ ),
        array( 'jquery-ui-core', 'jquery-color' )
        );
} // function ends
} // if condition ends

add_action('wp_enqueue_scripts','rainbow_title_script') 

1 个答案:

答案 0 :(得分:1)

有关创建选项页面的信息,请参阅http://codex.wordpress.org/Creating_Options_Pages

http://wp.tutsplus.com/tutorials/theme-development/the-complete-guide-to-the-wordpress-settings-api-part-1/

也提供了非常好的见解

修改 请考虑:http://wakeusup.com/2011/11/how-to-create-plugin-options-page-in-wordpress/

我在插件中使用了这种方法。 您可以这样设置您的设置:

if(!class_exists('cnp_plugin_options')):
    // DEFINE PLUGIN ID
    define('CNPPLUGINOPTIONS_ID', 'cnppluginoptions');
    // DEFINE PLUGIN NICK
    define('CNPPLUGINOPTIONS_NICK', 'CNP options');

    class cnp_plugin_options
    {
        /** function/method
        * Usage: hooking the plugin options/settings
        * Arg(0): null
        * Return: void
        */
        public static function register()
        {
            register_setting(CNPPLUGINOPTIONS_ID.'_options', 'cnp_builder');
            register_setting(CNPPLUGINOPTIONS_ID.'_options', 'cnp_author_restriction');
            register_setting(CNPPLUGINOPTIONS_ID.'_options', 'cnp_plugin_link');
            register_setting(CNPPLUGINOPTIONS_ID.'_options', 'cnp_notallowed');
        }
        /** function/method
        * Usage: hooking (registering) the plugin menu
        * Arg(0): null
        * Return: void
        */
        public static function menu()
        {
            // Create menu tab
            add_options_page(CNPPLUGINOPTIONS_NICK.' Plugin Options', CNPPLUGINOPTIONS_NICK, 'manage_options', CNPPLUGINOPTIONS_ID.'_options', array('cnp_plugin_options', 'options_page'));
        }
        /** function/method
        * Usage: show options/settings form page
        * Arg(0): null
        * Return: void
        */
        public static function options_page()
        {
            if (!current_user_can('manage_options'))
            {
                wp_die( __('You do not have sufficient permissions to access this page.') );
            }

            $plugin_id = CNPPLUGINOPTIONS_ID;
            // display options page
            include(plugin_dir_path(__FILE__).'/options.php');
        }
    if(is_admin()){
        add_action('admin_init', array('cnp_plugin_options', 'register'));
        add_action('admin_menu', array('cnp_plugin_options', 'menu'));
    }
endif;

现在您可以获得以下设置:

public static function cnp_notallowed(){
    if(get_option('cnp_notallowed')){
        return true;
    }else{
        return false;
    }
}