📁 File Manager Pro
v10.0.3 | PHP: 7.4.33
Server: LiteSpeed
2026-06-26 15:46:14
📂
/ (Root)
/
home
/
supecsoq
/
public_html
/
domains
/
migalexpark.com
/
wp-content
/
plugins
/
plethora-featureslib
/
features
/
module
/
postnavi
📍 /home/supecsoq/public_html/domains/migalexpark.com/wp-content/plugins/plethora-featureslib/features/module/postnavi
🔄 Refresh
✏️
Editing: module-postnavi.php
Writable
<?php /* ______ _____ _______ _______ _______ _______ ______ _______ | __ \ |_| ___|_ _| | | | __ \ _ | | __/ | ___| | | | | - | < | |___| |_______|_______| |___| |___|___|_______|___|__|___|___| P L E T H O R A T H E M E S . C O M (c) 2014-2015 Post Navigation module base class */ if ( ! defined( 'ABSPATH' ) ) exit; // NO DIRECT ACCESS if ( !class_exists('Plethora_Module_Postnavi') ) { /** */ class Plethora_Module_Postnavi { public static $feature_title = "Post Navigation Module"; // FEATURE DISPLAY TITLE public static $feature_description = ""; // FEATURE DISPLAY DESCRIPTION public static $theme_option_control = true; // WILL THIS FEATURE BE CONTROLLED IN THEME OPTIONS PANEL? public static $theme_option_default = true; // DEFAULT ACTIVATION OPTION STATUS public static $theme_option_requires = array(); // WHICH FEATURES ARE REQUIRED TO BE ACTIVE FOR THIS FEATURE TO WORK? ( array: $controller_slug => $feature_slug ) public static $dynamic_construct = true; // DYNAMIC CLASS CONSTRUCTION? public static $dynamic_method = false; // ADDITIONAL METHOD INVOCATION ( string/boolean | method name or false ) public $exclude_single_post_types = array(); public function __construct() { // Should hook on init, to have available all the supported post types list add_action( 'init', array( $this, 'init' ) ); } public function init() { if ( is_admin() ) { // Add breadcrumb options on given single post theme option tabs & metaboxes ( on section: 'Auxiliary Navigation' ) $single_post_types = Plethora_Theme::get_supported_post_types( array( 'type' => 'singles', 'exclude' => $this->exclude_single_post_types ) ); foreach ( $single_post_types as $post_type ) { add_filter( 'plethora_themeoptions_single_'. $post_type .'_auxiliary-navigation_fields', array( $this, 'add_single_options'), 15, 2 ); add_filter( 'plethora_metabox_single_'. $post_type .'_auxiliary-navigation_fields', array( $this, 'add_single_options'), 15, 2 ); } } } /** * Returns user set post navigation status */ public static function get_status() { $post_type = Plethora_Theme::get_this_view_post_type(); return Plethora_Theme::option( METAOPTION_PREFIX .$post_type.'-postnavi', 1 ); } /** * Returns complete post navigation configuration according to theme options */ public static function get_configuration() { $post_type = Plethora_Theme::get_this_view_post_type(); $prev_post_obj = get_adjacent_post( false, '', false ); $next_post_obj = get_adjacent_post( false, '', true ); $prev_permalink = get_permalink( $prev_post_obj ); $next_permalink = get_permalink( $next_post_obj ); $this_permalink = get_permalink(); $config['postnavi_labels'] = Plethora_Theme::option( METAOPTION_PREFIX . $post_type .'-postnavi-labels', 'custom' ); $config['postnavi_prev_url'] = ( $prev_permalink != $this_permalink ) ? $prev_permalink : ''; $config['postnavi_prev_label'] = ( $config['postnavi_labels'] === 'custom' ) ? Plethora_Theme::option( METAOPTION_PREFIX . $post_type .'-postnavi-label-previous', sprintf( esc_html__( 'Previous %s', 'plethora-framework' ), ucfirst( $post_type ) ) ) : get_the_title( $prev_post_obj ); $config['postnavi_next_url'] = ( $next_permalink != $this_permalink ) ? $next_permalink : ''; $config['postnavi_next_label'] = ( $config['postnavi_labels'] === 'custom' ) ? Plethora_Theme::option( METAOPTION_PREFIX . $post_type .'-postnavi-label-next', sprintf( esc_html__( 'Next %s', 'plethora-framework' ), ucfirst( $post_type ) ) ) : get_the_title( $next_post_obj ); return $config; } /** * Returns full html markup, according to theme options * No display status is applied, */ public static function get_html() { $config = self::get_configuration(); $html = ''; $html .= ( !empty( $config['postnavi_prev_url'] ) ) ? '<a href="'. esc_url( $config['postnavi_prev_url'] ).'"><span data-toggle="tooltip" data-placement="left" title="" class="previous_icon" data-original-title="'. $config['postnavi_prev_label'] .'"></span></a>' : ''; $html .= ( !empty( $config['postnavi_next_url'] ) ) ? '<a href="'. esc_url( $config['postnavi_next_url'] ).'"><span data-toggle="tooltip" data-placement="right" title="" class="next_icon" data-original-title="'. $config['postnavi_next_label'] .'"></span></a>' : ''; return $html; } /** * Adds the same option fields under the 'Theme Options > Content > Single { Post } > Auxiliary Navigation' section * and the Auxiliary Navigation section of the single post metabox * Hooked on 'plethora_metabox_single_{ post_type }_auxiliary-navigation_fields' */ public function add_single_options( $fields, $post_type ) { // setup theme options according to configuration $opts = $this->single_options( $post_type ); $opts_config = $this->single_options_config( $post_type ); foreach ( $opts_config as $opt_config ) { $id = $opt_config['id']; $status = ( current_filter() === 'plethora_themeoptions_single_'. $post_type .'_auxiliary-navigation_fields' ) ? $opt_config['theme_options'] : $opt_config['metabox'] ; $default_val = ( current_filter() === 'plethora_themeoptions_single_'. $post_type .'_auxiliary-navigation_fields' ) ? $opt_config['theme_options_default'] : $opt_config['metabox_default']; if ( $status && array_key_exists( $id, $opts ) ) { if ( !is_null( $default_val ) ) { // will add only if not NULL } $opts[$id]['default'] = $default_val; } $fields[] = $opts[$id]; } } return $fields; } /** * Returns single options index for 'Theme Options > Content > Single { Post Type }' tab * and the single post edit metabox. */ public function single_options( $post_type ) { $single_options['status'] = array( 'id' => METAOPTION_PREFIX . $post_type .'-postnavi', 'type' => 'switch', 'title' => sprintf( esc_html__('Next/Previous %s Navigation', 'plethora-framework'), ucfirst( $post_type ) ) , ); $single_options['navigation-labels'] = array( 'id' => METAOPTION_PREFIX . $post_type .'-postnavi-labels', 'type' => 'button_set', 'title' => esc_html__('Labels Type', 'plethora-framework'), 'options' => array( 'custom' => esc_html__('Custom Labels', 'plethora-framework'), 'post_title' => esc_html__('Post Titles', 'plethora-framework'), ), 'required' => array( array( METAOPTION_PREFIX . $post_type .'-postnavi','=','1') ), ); $single_options['navigation-label-previous'] = array( 'id' => METAOPTION_PREFIX . $post_type .'-postnavi-label-previous', 'type' => 'text', 'title' => esc_html__('Previous Label Text', 'plethora-framework'), 'translate' => true, 'required' => array( array( METAOPTION_PREFIX . $post_type .'-postnavi','=','1'), array( METAOPTION_PREFIX . $post_type .'-postnavi-labels','=', 'custom') ), ); $single_options['navigation-label-next'] = array( 'id' => METAOPTION_PREFIX . $post_type .'-postnavi-label-next', 'type' => 'text', 'title' => esc_html__('Next Label Text', 'plethora-framework'), 'translate' => true, 'required' => array( array( METAOPTION_PREFIX . $post_type .'-postnavi','=','1'), array( METAOPTION_PREFIX . $post_type .'-postnavi-labels','=', 'custom') ), ); return $single_options; } /** * Returns single options configuration for 'Theme Options > Content > Single { Post Type }' tab * and the single post edit metabox. * You should override this method on the extension class */ public function single_options_config( $post_type ) { return array(); } } }
💾 Save Changes
❌ Cancel