'https://www.aceprensa.com', 'aceprensa_cache_seconds' => '43200', 'aceprensa_salt' => 'YWNlcHJlbnNhX3Bvc3RzOnFOOE0gV1M1MyBiZkYyIHZrd1cgQk9yayB0U2FE', 'aceprensa_num_posts' => '3', 'aceprensa_image_size' => 'medium' ); // Agrega una acción para cargar la página de ajustes. add_action('admin_menu', 'aceprensa_posts_options_page'); // Registra y guarda las opciones. function aceprensa_posts_register_settings() { register_setting('aceprensa-posts-settings-group', 'aceprensa_site_url'); register_setting('aceprensa-posts-settings-group', 'aceprensa_username'); register_setting('aceprensa-posts-settings-group', 'aceprensa_salt'); register_setting('aceprensa-posts-settings-group', 'aceprensa_selected_categories'); register_setting('aceprensa-posts-settings-group', 'aceprensa_num_posts'); register_setting('aceprensa-posts-settings-group', 'aceprensa_image_size'); register_setting('aceprensa-posts-settings-group', 'aceprensa_un_click'); register_setting('aceprensa-posts-settings-group', 'aceprensa_post_types'); register_setting('aceprensa-posts-settings-group', 'aceprensa_cache_seconds'); } add_action('admin_init', 'aceprensa_posts_register_settings'); // Aplica las opciones por defecto del plugin foreach ($default_settings as $option => $setting) { add_option($option, $setting); } // Registra los scripts del backend del plugin function aceprensa_posts_admin_scripts() { wp_register_script('admin-js', plugin_dir_url(__FILE__) . 'assets/js/admin.js', array('jquery'), '1.0.1', true); wp_register_style('aceprensa_posts_preview_style', plugin_dir_url(__FILE__) . 'assets/css/preview.css', array(), '1.0.0', 'all'); } add_action('admin_enqueue_scripts', 'aceprensa_posts_admin_scripts'); // Muestra la página de ajustes. function aceprensa_posts_page() { include plugin_dir_path(__FILE__) . 'admin-view.php'; wp_enqueue_style('aceprensa_posts_preview_style'); wp_enqueue_script('admin-js'); wp_localize_script('admin-js', 'remotePostsData', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('remote-posts') )); } //Habilita la función conectar_api en el admin_ajax de wordpress add_action('wp_ajax_conectar_api', 'aceprensa_posts_conectar_api'); //Crea la función que se encarga de borrar el transient de los posts function aceprensa_posts_delete_posts_transient() { if (get_transient('aceprensa_posts_remote_query_tmp') !== false) { delete_transient('aceprensa_posts_remote_query_tmp'); } } //Si se actualiza cualquier ajuste, llamo a la función add_action('update_option', 'aceprensa_posts_check_options_update', 10, 3); //Recoge los ajustes de aceprensa y comprueba si son ellos los que se han actualizado function aceprensa_posts_check_options_update($option, $old_value, $value) { //Array con los ajustes del plugin $opciones_aceprensa = array( 'aceprensa_site_url', 'aceprensa_username', 'aceprensa_password', 'aceprensa_selected_categories', 'aceprensa_num_posts', 'aceprensa_image_size', 'aceprensa_un_click', 'aceprensa_post_types', 'aceprensa_cache_seconds' ); //Si hay un cambio en los ajustes del plugin, llama a la funcion que borra el transient if (in_array($option, $opciones_aceprensa)) { aceprensa_posts_delete_posts_transient(); } } // Registra el fichero css para el shortcode pero no lo mete en la cola function aceprena_posts_shortcode_extra_files() { wp_register_style('aceprensa_posts_style', plugin_dir_url(__FILE__) . 'assets/css/shortcode.css', array(), '1.0.0', 'all'); } add_action('wp_enqueue_scripts', 'aceprena_posts_shortcode_extra_files'); // Comprueba si hay una llamada a la función que ejecuta el shortcode function aceprensa_posts_shortcode() { // Si existe la llamada encola el estilo para que sólo se ejecute en las páginas donde se use wp_enqueue_style('aceprensa_posts_style'); include plugin_dir_path(__FILE__) . 'shortcode.php'; } //Añade el shortcode add_shortcode('aceprensa-posts', 'aceprensa_posts_shortcode');