footnoteSettings = array( 'footnoteLabel' => __( 'Footnotes', 'easy-footnotes' ), 'useLabel' => false, 'hide_easy_footnote_after_posts' => false, 'show_easy_footnote_on_front' => false, ); add_option( 'easy_footnotes_options', $this->footnoteSettings ); add_shortcode( 'note', array( $this, 'easy_footnote_shortcode' ) ); add_shortcode( 'efn_note', array( $this, 'easy_footnote_shortcode' ) ); add_filter( 'the_content', array( $this, 'easy_footnote_after_content' ), 20 ); add_filter( 'the_content', array( $this, 'easy_footnote_reset' ), 999 ); add_action( 'wp_enqueue_scripts', array( $this, 'register_qtip_scripts' ) ); add_action( 'admin_menu', array( $this, 'easy_footnotes_admin_actions' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'easy_footnotes_admin_scripts' ) ); $this->footnoteOptions = get_option( 'easy_footnotes_options' ); } /** * Registering the scripts and styles used by jQuery qTip. */ public function register_qtip_scripts() { wp_register_script( 'imagesloaded', plugins_url( '/assets/qtip/imagesloaded.pkgd.min.js', __FILE__ ), array(), '3.1.8', true ); wp_register_script( 'qtip', plugins_url( '/assets/qtip/jquery.qtip.min.js', __FILE__ ), array( 'jquery', 'imagesloaded' ), '3.0.3', true ); wp_register_script( 'qtipcall', plugins_url( '/assets/qtip/jquery.qtipcall.js', __FILE__ ), array( 'jquery', 'qtip' ), '1.1.0', true ); wp_register_style( 'qtipstyles', plugins_url( '/assets/qtip/jquery.qtip.min.css', __FILE__ ), array(), '3.0.3', false ); wp_register_style( 'easyfootnotescss', plugins_url( '/assets/easy-footnotes.css', __FILE__ ), array(), '1.1.0', false ); } /** * Create the Easy Footnotes shortcode. * * @param array $atts Shortcode attributes. * @param string $content Content within the shortcode. */ public function easy_footnote_shortcode( $atts, $content = null ) { if ( isset( $this->footnoteOptions['show_easy_footnote_on_front'] ) && $this->footnoteOptions['show_easy_footnote_on_front'] ) { $efn_show_on_front = is_front_page(); } else { $efn_show_on_front = false; } wp_enqueue_style( 'qtipstyles' ); wp_enqueue_style( 'easyfootnotescss' ); wp_enqueue_script( 'imagesloaded' ); wp_enqueue_script( 'qtip' ); wp_enqueue_script( 'qtipcall' ); wp_enqueue_style( 'dashicons' ); $atts = shortcode_atts( array( // Future home of shortcode atts. ), $atts ); $post_id = get_the_ID(); $content = do_shortcode( $content ); $count = $this->footnoteCount; // Increment the counter. $count++; // Set the footnoteCount (This whole process needs reworked). $this->footnoteCount = $count; $this->easy_footnote_content( $content ); if ( ( is_singular() || $efn_show_on_front ) && is_main_query() ) { $footnoteLink = '#easy-footnote-bottom-' . $this->footnoteCount . '-' . $post_id; } else { $footnoteLink = get_permalink( get_the_ID() ) . '#easy-footnote-bottom-' . $this->footnoteCount . '-' . $post_id; } $footnoteContent = "" . esc_html( $this->footnoteCount ) . ""; return $footnoteContent; } /** * The content of a particular footnote. * * @param string $content The content from a particular call of the shortcode. */ public function easy_footnote_content( $content ) { $this->footnotes[ $this->footnoteCount ] = $content; return $this->footnotes; } /** * Display the list of footnotes after the post content. * * @param string $content The content of the current post. */ public function easy_footnote_after_content( $content ) { if ( isset( $this->footnoteOptions['hide_easy_footnote_after_posts'] ) && $this->footnoteOptions['hide_easy_footnote_after_posts'] ) { return $content; } if ( isset( $this->footnoteOptions['show_easy_footnote_on_front'] ) && $this->footnoteOptions['show_easy_footnote_on_front'] ) { $efn_show_on_front = is_front_page(); } else { $efn_show_on_front = false; } if ( ( is_singular() || $efn_show_on_front ) && is_main_query() ) { $footnotesInsert = $this->footnotes; $footnoteCopy = ''; $efn_output = ''; $useLabel = isset( $this->footnoteOptions['useLabel'] ) ? $this->footnoteOptions['useLabel'] : false; $efLabel = isset($this->footnoteOptions['footnoteLabel'] ) ? $this->footnoteOptions['footnoteLabel'] : __( 'Footnotes', 'easy-footnotes' ); $post_id = get_the_ID(); foreach ( $footnotesInsert as $count => $footnote ) { $footnoteCopy .= '