options = get_option($this->option_name); add_action( 'admin_menu', array( &$this, 'ftAddlink_menu' ) ); add_action( 'admin_init', array( &$this, 'ftAddlink_admininit' ) ); add_action( 'init', array( &$this, 'ftAddlink_init') ); add_action( 'wp_head', array( &$this, 'add_script' ) ); } function ftAddlink_init(){ $options = $this->options ; if( !isset($options['readmore']) ) $options['readmore'] = 'Continue reading at:'; if( !isset($options['breaks']) ) $options['breaks'] = 2; if( !isset($options['usetitle']) ) $options['usetitle'] = false; if( !isset($options['addlinktosite']) ) $options['addlinktosite'] = false; if( !isset($options['cleartext']) ) $options['cleartext'] = false; if( !isset($options['addsitename']) ) $options['addsitename'] = true; if( !isset($options['usesitenameaslink']) ) $options['usesitenameaslink'] = true; if( !isset($options['replaced_text']) ) $options['replaced_text'] = ''; } function add_script() { wp_register_script( 'add_linkoncopy', plugins_url( basename( dirname( __FILE__ ) ) ) . '/assets/add_link.js'); wp_enqueue_script( 'add_linkoncopy' ); global $post; $options = $this->options; $params = array( 'readmore' => $options['readmore'], 'breaks' => $options['breaks'], 'addlinktosite' => $options["addlinktosite"] , 'usetitle' => $options['usetitle'], 'cleartext' => $options['cleartext'], 'addsitename' => $options['addsitename'], 'replaced_text' => $options['replaced_text'], 'sitename' => get_bloginfo('name'), 'usesitenameaslink' => $options['usesitenameaslink'], 'siteurl' => get_bloginfo('url') ); if ($options['usetitle'] === true) { if (is_home() || is_front_page()){ $params['pagetitle'] = get_bloginfo('name'); $params['addsitename'] = false; } if (is_singular()){ $params['pagetitle'] = get_the_title($post->ID); } } wp_localize_script( 'add_linkoncopy', 'add_link', $params ); } // adding menu item in admin menu function ftAddlink_menu(){ //add_options_page('Todo Options', 'Todo Options', 'manage_options', 'todo_list_options', array($this, 'options_do_page')); add_options_page('Add link Settings', 'Add Link', 'manage_options', 'ftAddlink_options',array($this, 'ftAddlink_display_settings')); } //register_setting( $option_group, $option_name, $sanitize_callback ); function ftAddlink_admininit() { register_setting($this->option_name, $this->option_name, array($this, 'options_validate')); } public function options_validate($input) { $valid = array(); $valid = $input; $valid['readmore'] = sanitize_text_field($input['readmore']); $valid['breaks'] = sanitize_text_field($input['breaks']); $valid['addlinktosite'] = isset($input['addlinktosite']) ? (bool) $input['addlinktosite'] : false; $valid['usetitle'] = isset($input['usetitle']) ? (bool) $input['usetitle'] : false; $valid['cleartext'] = isset($input['cleartext']) ? (bool) $input['cleartext'] : false; $valid['usesitenameaslink'] = isset($input['usesitenameaslink']) && !$valid['addlinktosite'] ? (bool) $input['usesitenameaslink'] : false; $valid['addsitename'] = isset($input['addsitename']) && !$valid['usesitenameaslink'] ? (bool) $input['addsitename'] : false; $valid['replaced_text'] = $input['replaced_text']; if (strlen($valid['breaks']) == 0 || $valid['breaks'] < 0) { add_settings_error( 'breaks', // Setting title 'breaks_texterror', // Error ID 'Please enter a valid integer number', // Error message 'error' // Type of message ); // Set it to the default value $valid['breaks'] = 0; } return $valid; } function ftAddlink_display_settings(){ $options = get_option($this->option_name); $readmore = isset($options['readmore'])? $options['readmore'] : 'Continue reading at'; $breaks = isset($options['breaks']) ? $options['breaks'] : 2; ?>