WordPress.org

Plugin Directory

Changeset 1649945


Ignore:
Timestamp:
05/02/17 20:19:17 (6 months ago)
Author:
Mte90
Message:

tagging version 1.3.5

Location:
glossary-by-codeat
Files:
602 added
9 edited

Legend:

Unmodified
Added
Removed
  • glossary-by-codeat/trunk/README.txt

    r1638265 r1649945  
    22Contributors: codeat, iGenius, mte90 
    33Donate link: http://codeat.com/ 
    4 Tags: glossary, vocabulary, dictionary, tooltips, terms, 
     4Tags: glossary, vocabulary, dictionary, tooltip, terms, lexicon, knowledgebase, knowledge base, reference, terminology, catalog, directory, index, listing, literature, appendix, 
    55Requires at least: 4.5 
    66Tested up to: 4.7 
    7 Stable tag: 1.3.4 
     7Stable tag: 1.3.5 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    4141* Standard Shortcodes 
    4242* YARPP plugin support 
     43* CM Glossary Tooltip plugin Support 
    4344* No Direct Support 
    4445 
     
    5657* Case sensitive term match 
    5758* Prevent term link to appear in the same term page 
     59* Archive/Category order also by alphabetic 
    5860* Direct Support 
    5961 
     
    6264* All Pro Feature 
    6365* Media support for Youtube, Vimeo, Soundcloud 
     66* Mobile tooltip on click 
    6467 
    6568== Installation == 
     
    114117 
    115118== Changelog == 
     119 
     120= 1.3.5 = 
     121* Fix: For empty list of terms 
     122* Fix: For terms inside HTML 
     123* Fix: Load admin.css file in the right pages 
     124* Enhancement: CM Glossary Tooltip supported 
     125* [PRO] Fix: Terms archive wasn't ordered on taxonomy page 
    116126 
    117127= 1.3.4 = 
  • glossary-by-codeat/trunk/admin/assets/css/admin.css

    r1637586 r1649945  
    8080    color: #fff; 
    8181} 
     82 
    8283.cmb2-metabox-title { 
    8384    font-size:16px !important; 
     
    8687    min-width: 600px; 
    8788} 
    88  
    8989.cmb2-metabox.cmb-field-list .cmb-row.cmb-type-title { 
    9090    padding: 8px 12px; 
     
    9797.cmb2-metabox.cmb-field-list .cmb-row { 
    9898    background: #fff; 
    99     padding: 0 12px;         
    100     border: 1px solid #e5e5e5; 
    101     margin-top:-1px; 
     99    padding: 0 12px; 
    102100} 
    103101.cmb2-metabox.cmb-field-list .cmb-th { 
     
    108106    padding:0; 
    109107} 
    110  
    111108.cmb-form .button-primary { 
    112109    margin-top: 20px; 
    113110} 
    114  
    115111.preview { 
    116112    float:right; 
  • glossary-by-codeat/trunk/admin/class-glossary-admin.php

    r1568662 r1649945  
    66 * @package   Glossary 
    77 * @author    Codeat <support@codeat.co> 
     8 * @copyright 2016 GPL 2.0+ 
    89 * @license   GPL-2.0+ 
    910 * @link      http://codeat.co 
    10  * @copyright 2016 GPL 2.0+ 
    1111 */ 
    1212/** 
    1313 * Plugin class. This class should ideally be used to work with the 
    1414 * administrative side of the WordPress site. 
    15  * 
    1615 */ 
    1716class Glossary_Admin 
     
    2019     * Instance of this class. 
    2120     * 
    22      * @since    1.0.0 
    23      * 
    24      * @var      object 
     21     * @var object 
    2522     */ 
    2623    protected static  $instance = null ; 
     
    2825     * Slug of the plugin screen. 
    2926     * 
    30      * @since    1.0.0 
    31      * 
    32      * @var      string 
     27     * @var string 
    3328     */ 
    3429    protected  $plugin_screen_hook_suffix = null ; 
     
    3732     * settings page and menu. 
    3833     * 
    39      * @since     1.0.0 
     34     * @since 1.0.0 
     35     *  
     36     * @return void 
    4037     */ 
    4138    private function __construct() 
     
    8178     * Return an instance of this class. 
    8279     * 
    83      * @since     1.0.0 
    84      * 
    85      * @return    object    A single instance of this class. 
     80     * @since 1.0.0 
     81     * 
     82     * @return object A single instance of this class. 
    8683     */ 
    8784    public static function get_instance() 
    8885    { 
    8986        // If the single instance hasn't been set, set it now. 
    90         if ( null == self::$instance ) { 
     87        if ( null === self::$instance ) { 
    9188            self::$instance = new self(); 
    9289        } 
     
    9794     * Register and enqueue admin-specific style sheet. 
    9895     * 
    99      * @since     1.0.0 
    100      * 
    101      * @return    void    Return early if no settings page is registered. 
     96     * @since 1.0.0 
     97     * 
     98     * @return void Return early if no settings page is registered. 
    10299     */ 
    103100    public function enqueue_admin_styles() 
    104101    { 
    105         $screen = get_current_screen(); 
    106         if ( $this->plugin_screen_hook_suffix == $screen->id || strpos( $_SERVER['REQUEST_URI'], 'index.php' ) || strpos( $_SERVER['REQUEST_URI'], '/wp-admin/' ) !== -1 ) { 
     102        $screen = ''; 
     103         
     104        if ( function_exists( 'get_current_screen' ) ) { 
     105            $screen = get_current_screen(); 
     106            $screen = $screen->id; 
     107        } 
     108         
     109        if ( $this->plugin_screen_hook_suffix === $screen || strpos( $_SERVER['REQUEST_URI'], 'index.php' ) ) { 
    107110            wp_enqueue_style( 
    108111                GT_SETTINGS . '-admin-styles', 
     
    117120     * Register and enqueue admin-specific JavaScript. 
    118121     * 
    119      * 
    120      * @since     1.0.0 
    121      * 
    122      * @return    void    Return early if no settings page is registered. 
     122     * @since 1.0.0 
     123     * 
     124     * @return void Return early if no settings page is registered. 
    123125     */ 
    124126    public function enqueue_admin_scripts() 
    125127    { 
    126         $screen = get_current_screen(); 
    127         if ( $screen->post_type === 'glossary' ) { 
     128        $screen = ''; 
     129         
     130        if ( function_exists( 'get_current_screen' ) ) { 
     131            $screen = get_current_screen(); 
     132            $posttype = $screen->post_type; 
     133            $screen = $screen->id; 
     134        } 
     135         
     136        if ( $posttype === 'glossary' ) { 
    128137            wp_enqueue_script( 
    129138                GT_SETTINGS . '-admin-pt-script', 
     
    136145            return; 
    137146        } 
    138         if ( $this->plugin_screen_hook_suffix === $screen->id ) { 
     147        if ( $this->plugin_screen_hook_suffix === $screen ) { 
    139148            wp_enqueue_script( 
    140149                GT_SETTINGS . '-admin-script', 
     
    149158     * Register the administration menu for this plugin into the WordPress Dashboard menu. 
    150159     * 
    151      * @since    1.0.0 
     160     * @since 1.0.0 
    152161     *  
    153162     * @return void 
     
    155164    public function add_plugin_admin_menu() 
    156165    { 
    157         /* 
    158          * Settings page in the menu 
    159          *  
    160          */ 
    161166        $this->plugin_screen_hook_suffix = add_submenu_page( 
    162167            'edit.php?post_type=glossary', 
     
    172177     * Render the settings page for this plugin. 
    173178     * 
    174      * @since    1.0.0 
     179     * @since 1.0.0 
     180     *  
     181     * @return void 
    175182     */ 
    176183    public function display_plugin_admin_page() 
     
    182189     * Add settings action link to the plugins page. 
    183190     * 
    184      * @since    1.0.0 
     191     * @param array $links The list of links. 
     192     *  
     193     * @since 1.0.0 
     194     *  
     195     * @return array 
    185196     */ 
    186197    public function add_action_links( $links ) 
     
    197208     *        Reference:  http://wpsnipp.com/index.php/functions-php/wordpress-post-types-dashboard-at-glance-widget/ 
    198209     * 
    199      * @since    1.0.0 
     210     * @param array $items The list of post types. 
     211     * 
     212     * @since 1.0.0 
    200213     *  
    201214     * @return array 
     
    238251     * Add the recents post type in the activity widget<br> 
    239252     * NOTE: add in $post_types your cpts 
    240      * 
    241      * @since    1.0.0 
     253     *  
     254     * @param array $query_args All the parameters. 
     255     * 
     256     * @since 1.0.0 
    242257     *  
    243258     * @return array 
     
    246261    { 
    247262        if ( !is_array( $query_args['post_type'] ) ) { 
    248             //Set default post type 
     263            // Set default post type 
    249264            $query_args['post_type'] = array( 'page' ); 
    250265        } 
  • glossary-by-codeat/trunk/glossary.php

    r1638265 r1649945  
    1414 * Plugin URI:        http://codeat.co/glossary 
    1515 * Description:       Easily add and manage a glossary with auto-link, tooltips and more. Improve your internal link building for a better SEO. 
    16  * Version:           1.3.4 
     16 * Version:           1.3.5 
    1717 * Author:            Codeat 
    1818 * Author URI:        http://codeat.co 
     
    2929    die; 
    3030} 
    31 define( 'GT_VERSION', '1.3.4' ); 
     31define( 'GT_VERSION', '1.3.5' ); 
    3232define( 'GT_SETTINGS', 'glossary' ); 
    3333define( 'GT_TEXTDOMAIN', 'glossary-by-codeat' ); 
  • glossary-by-codeat/trunk/includes/freemius/start.php

    r1622741 r1649945  
    1616     * @var string 
    1717     */ 
    18     $this_sdk_version = '1.2.1.6.1'; 
     18    $this_sdk_version = '1.2.1.6.2'; 
    1919 
    2020    #region SDK Selection Logic -------------------------------------------------------------------- 
     
    3535 
    3636    if ( ! isset( $fs_active_plugins ) ) { 
    37         // Require SDK essentials. 
    38         require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php'; 
     37        if ( ! function_exists( '__fs' ) ) { 
     38            // Require SDK essentials. 
     39            require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php'; 
     40        } 
    3941 
    4042        // Load all Freemius powered active plugins. 
     
    4345        if ( ! isset( $fs_active_plugins->plugins ) ) { 
    4446            $fs_active_plugins->plugins = array(); 
     47        } 
     48    } 
     49 
     50    if ( empty( $fs_active_plugins->abspath ) ) { 
     51        /** 
     52         * Store the WP install absolute path reference to identify environment change 
     53         * while replicating the storage. 
     54         * 
     55         * @author Vova Feldman (@svovaf) 
     56         * @since  1.2.1.7 
     57         */ 
     58        $fs_active_plugins->abspath = ABSPATH; 
     59    } else { 
     60        if ( ABSPATH !== $fs_active_plugins->abspath ) { 
     61            /** 
     62             * WordPress path has changed, cleanup the SDK references cache. 
     63             * This resolves issues triggered when spinning a staging environments 
     64             * while replicating the database. 
     65             * 
     66             * @author Vova Feldman (@svovaf) 
     67             * @since  1.2.1.7 
     68             */ 
     69            $fs_active_plugins->abspath = ABSPATH; 
     70            $fs_active_plugins->plugins = array(); 
     71            unset( $fs_active_plugins->newest ); 
     72        } else { 
     73            /** 
     74             * Make sure SDK references are still valid. This resolves 
     75             * issues when users hard delete modules via FTP. 
     76             * 
     77             * @author Vova Feldman (@svovaf) 
     78             * @since  1.2.1.7 
     79             */ 
     80            foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) { 
     81                if ( ! file_exists( WP_PLUGIN_DIR . '/' . $sdk_path ) ) { 
     82                    unset( $fs_active_plugins->plugins[ $sdk_path ] ); 
     83                } 
     84 
     85                update_option( 'fs_active_plugins', $fs_active_plugins ); 
     86            } 
    4587        } 
    4688    } 
     
    291333 
    292334        /** 
    293          * @param array<string,string> $module Plugin or Theme details. 
     335         * @param array <string,string> $module Plugin or Theme details. 
    294336         * 
    295337         * @return Freemius 
  • glossary-by-codeat/trunk/public/class-glossary.php

    r1637586 r1649945  
    9999        } 
    100100        if ( isset( $this->settings['order_terms'] ) ) { 
    101             add_filter( 'pre_get_posts', array( $this, 'order_glossary' ) ); 
     101            add_action( 'pre_get_posts', array( $this, 'order_glossary' ), 9999 ); 
    102102        } 
    103103        if ( isset( $this->settings['tax_archive'] ) ) { 
     
    174174        } 
    175175         
    176         if ( isset( $query->query_vars['post_type'] ) && $query->query_vars['post_type'] === 'glossary' ) { 
    177             $query->set( 'orderby', 'post_title' ); 
     176        if ( ($query->is_tax( 'glossary-cat' ) || $query->is_post_type_archive( 'glossary' )) && $query->is_main_query() ) { 
     177            $query->set( 'orderby', 'title' ); 
    178178            $query->set( 'order', 'ASC' ); 
    179179        } 
    180          
    181         return $query; 
     180     
    182181    } 
    183182     
     
    241240    } 
    242241     
     242    /** 
     243     * Hide terms from taxonomy if content is empty 
     244     *  
     245     * @param string $where The SQL query. 
     246     *  
     247     * @return string 
     248     */ 
    243249    public function hide_empty_terms( $where ) 
    244250    { 
  • glossary-by-codeat/trunk/public/includes/Glossary_Genesis.php

    r1637586 r1649945  
    3333    public function genesis_content() { 
    3434        $gt_search_engine = Glossary_Search_Engine::get_instance(); 
     35        $content = ''; 
    3536 
    3637        // Only display excerpt if not a teaser. 
     
    5859                } 
    5960            } 
     61             
     62            if(is_search() ){ 
     63                $content = get_the_excerpt( get_the_ID()); 
     64            } 
     65             
    6066            echo $gt_search_engine->check_auto_link( wpautop( do_shortcode( $content ) ) ); 
    6167            remove_action( 'genesis_entry_content', 'genesis_do_post_content' ); 
  • glossary-by-codeat/trunk/public/includes/Glossary_Search_Engine.php

    r1638265 r1649945  
    9393        $title = preg_quote( $title, '/' ); 
    9494        $ci = '(?i)' . $title . '(?-i)'; 
    95         return apply_filters( 'glossary-regex', '/(?<![\\w\\-\\.])(' . $ci . ')(?=[ \\.\\,\\:\\;\\*\\"\\)\\!\\?\\/\\%\\$\\€\\£\\|\\^\\<\\>])(?![^<]*(\\/>|<span|<a|<h|<\\/h|<\\/a))/u', $title ); 
     95        return apply_filters( 'glossary-regex', '/(?<![\\w\\-\\.\\/]|=")(' . $ci . ')(?=[ \\.\\,\\:\\;\\*\\"\\)\\!\\?\\/\\%\\$\\€\\£\\|\\^\\<\\>\\“\\”])(?![^<]*(\\/>|<span|<a|<h|<\\/h|<\\/a|\\"))/u', $title ); 
    9696    } 
    9797     
     
    170170    public function do_wrap( $text, $terms ) 
    171171    { 
    172         $new_text = ''; 
    173172         
    174173        if ( !empty($text) && !empty($terms) ) { 
     
    233232                } 
    234233            } 
     234             
     235            if ( !empty($all_terms) ) { 
     236                uksort( $all_terms, 'strnatcmp' ); 
     237                $new_pos = -1; 
     238                $old_new_text = $old_text = ''; 
     239                $old_pos = 0; 
     240                foreach ( $all_terms as $pos => $term ) { 
     241                     
     242                    if ( $new_pos > -1 ) { 
     243                        $new_pos = $new_pos + $old_new_text + ($pos - ($old_pos + $old_text)); 
     244                    } else { 
     245                        $new_pos = $pos; 
     246                    } 
     247                     
     248                    $old_new_text = $this->get_len( $term[1] ); 
     249                    $old_text = $term[0]; 
     250                    $encode = mb_detect_encoding( $term[2] ); 
     251                    $real_length = $term[0]; 
     252                    // With utf-8 character with multiple bits this is the workaround for the right value 
     253                    if ( $encode !== 'ASCII' ) { 
     254                         
     255                        if ( gl_text_is_rtl( $text ) ) { 
     256                            $multiply = 0; 
     257                            // Seems that when there are symbols I need to add 2 for every of them 
     258                            $multiply += mb_substr_count( $text, '-' ) + mb_substr_count( $text, '.' ) + mb_substr_count( $text, ':' ); 
     259                            if ( $multiply > 0 ) { 
     260                                $real_length += $multiply * 2; 
     261                            } 
     262                            $real_length += $real_length; 
     263                        } 
     264                     
     265                    } 
     266                    // 0 is the term long, 1 is the new html 
     267                    $new_text = substr_replace( 
     268                        $new_text, 
     269                        $term[1], 
     270                        $new_pos, 
     271                        $real_length 
     272                    ); 
     273                    $old_pos = $pos; 
     274                } 
     275            } 
     276             
     277            // This eventually remove broken UTF-8 
     278            return iconv( 'UTF-8', 'UTF-8//IGNORE', $new_text ); 
    235279        } 
    236280         
    237          
    238         if ( !empty($all_terms) ) { 
    239             uksort( $all_terms, 'strnatcmp' ); 
    240             $new_pos = -1; 
    241             $old_new_text = $old_text = ''; 
    242             $old_pos = 0; 
    243             foreach ( $all_terms as $pos => $term ) { 
    244                  
    245                 if ( $new_pos > -1 ) { 
    246                     $new_pos = $new_pos + $old_new_text + ($pos - ($old_pos + $old_text)); 
    247                 } else { 
    248                     $new_pos = $pos; 
    249                 } 
    250                  
    251                 $old_new_text = $this->get_len( $term[1] ); 
    252                 $old_text = $term[0]; 
    253                 $encode = mb_detect_encoding( $term[2] ); 
    254                 $real_length = $term[0]; 
    255                 // With utf-8 character with multiple bits this is the workaround for the right value 
    256                 if ( $encode !== 'ASCII' ) { 
    257                      
    258                     if ( gl_text_is_rtl( $text ) ) { 
    259                         $multiply = 0; 
    260                         // Seems that when there are symbols I need to add 2 for every of them 
    261                         $multiply += mb_substr_count( $text, '-' ) + mb_substr_count( $text, '.' ) + mb_substr_count( $text, ':' ); 
    262                         if ( $multiply > 0 ) { 
    263                             $real_length += $multiply * 2; 
    264                         } 
    265                         $real_length += $real_length; 
    266                     } 
    267                  
    268                 } 
    269                 // 0 is the term long, 1 is the new html 
    270                 $new_text = substr_replace( 
    271                     $new_text, 
    272                     $term[1], 
    273                     $new_pos, 
    274                     $real_length 
    275                 ); 
    276                 $old_pos = $pos; 
    277             } 
    278         } 
    279          
    280         // This eventually remove broken UTF-8 
    281         return iconv( 'UTF-8', 'UTF-8//IGNORE', $new_text ); 
     281        return $text; 
    282282    } 
    283283     
  • glossary-by-codeat/trunk/public/includes/Glossary_a2z_Archive.php

    r1568662 r1649945  
    22 
    33/** 
     4 * Glossary 
    45 *  
    56 * @package   Glossary 
    67 * @author    Codeat <support@codeat.co> 
     8 * @copyright 2016 GPL 2.0+ 
    79 * @license   GPL-2.0+ 
    810 * @link      http://codeat.co 
    9  * @copyright 2016 GPL 2.0+ 
    1011 */ 
    1112 
     
    1617class Glossary_a2z_Archive { 
    1718 
    18   /** 
    19   * Initialize the plugin by setting localization and loading public scripts 
    20   * and styles. 
    21   * 
    22    * @since    1.0.0 
    23   */ 
    24   public function __construct() { 
    25     add_filter( 'query_vars', array( $this, 'query_vars' ) ); 
    26     add_action( 'pre_get_posts', array( $this, 'check_qv' ) ); 
    27   } 
     19    /** 
     20    * Initialize the plugin by setting localization and loading public scripts 
     21    * and styles. 
     22    * 
     23     * @since 1.0.0 
     24    */ 
     25    public function __construct() { 
     26        add_filter( 'query_vars', array( $this, 'query_vars' ) ); 
     27        add_action( 'pre_get_posts', array( $this, 'check_qv' ) ); 
     28    } 
    2829 
    29   /** 
    30    * Add our value 
    31    *  
    32    * @param array $query_vars The query vars. 
    33    * @return array 
    34    */ 
    35   public function query_vars( $query_vars ) { 
    36     array_push( $query_vars, 'az' ); 
    37     return $query_vars; 
    38   } 
     30    /** 
     31     * Add our value 
     32     *  
     33     * @param array $query_vars The query vars. 
     34     *  
     35     * @return array 
     36     */ 
     37    public function query_vars( $query_vars ) { 
     38        array_push( $query_vars, 'az' ); 
     39        return $query_vars; 
     40    } 
    3941 
    40   /** 
    41    * Check our value 
    42    *  
    43    * @global object $wp_query The WP_Query. 
    44    * @param object $query The query object. 
    45    *  
    46    * @return void 
    47    */ 
    48   public function check_qv( $query ) { 
    49     if ( $query->is_main_query() && $query->is_archive() && isset( $query->query_vars[ 'az' ] ) ) { 
    50       // If we are on the main query and the query var 'a2z' exists, modify the where/orderby statements 
    51       add_filter( 'posts_where', array( $this, 'modify_query_where' ) ); 
    52       add_filter( 'posts_orderby', array( $this, 'modify_query_orderby' ) ); 
    53     } 
    54   } 
     42    /** 
     43     * Check our value 
     44     *  
     45     * @param object $query The query object. 
     46     *  
     47     * @global object $wp_query The WP_Query. 
     48     *  
     49     * @return void 
     50     */ 
     51    public function check_qv( $query ) { 
     52        if ( $query->is_main_query() && $query->is_archive() && isset( $query->query_vars[ 'az' ] ) && !empty( $query->query_vars[ 'az' ] ) ) { 
     53            // If we are on the main query and the query var 'a2z' exists, modify the where/orderby statements 
     54            add_filter( 'posts_where', array( $this, 'modify_query_where' ) ); 
     55            add_filter( 'posts_orderby', array( $this, 'modify_query_orderby' ) ); 
     56        } 
     57    } 
    5558 
    56   /** 
    57    * Alter the SQL 
    58    *  
    59    * @global object $wp_query The WP_Query. 
    60    * @global object $wpdb The WPdb object. 
    61    * @param string $where Tje where part of the query. 
    62    * @return string 
    63    */ 
    64   public function modify_query_where( $where ) { 
    65     global $wp_query, $wpdb; 
    66     $where .= " AND substring( TRIM( LEADING 'A ' FROM TRIM( LEADING 'AN ' FROM TRIM( LEADING 'THE ' FROM UPPER( $wpdb->posts.post_title ) ) ) ), 1, 1) = '" . $wp_query->query_vars[ 'az' ] . "'"; 
    67     remove_filter( 'posts_where', array( $this, 'modify_query_where' ) ); 
    68     return $where; 
    69   } 
     59    /** 
     60     * Alter the SQL 
     61     *  
     62     * @param string $where Tje where part of the query. 
     63     *  
     64     * @global object $wp_query The WP_Query. 
     65     * @global object $wpdb The WPdb object. 
     66     *  
     67     * @return string 
     68     */ 
     69    public function modify_query_where( $where ) { 
     70        global $wp_query, $wpdb; 
     71        $where .= " AND substring( TRIM( LEADING 'A ' FROM TRIM( LEADING 'AN ' FROM TRIM( LEADING 'THE ' FROM UPPER( $wpdb->posts.post_title ) ) ) ), 1, 1) = '" . $wp_query->query_vars[ 'az' ] . "'"; 
     72        remove_filter( 'posts_where', array( $this, 'modify_query_where' ) ); 
     73        return $where; 
     74    } 
    7075 
    71   /** 
    72    * Alter the SQL 
    73    *  
    74    * @global object $wpdb The WPdb object. 
    75    * @param string $orderby The SQL query for the orderby part. 
    76    * @return string 
    77    */ 
    78   public function modify_query_orderby( $orderby ) { 
    79     global $wpdb; 
    80     $orderby = "( TRIM( LEADING 'A ' FROM TRIM( LEADING 'AN ' FROM TRIM( LEADING 'THE ' FROM UPPER( $wpdb->posts.post_title ) ) ) ) )"; 
     76    /** 
     77     * Alter the SQL 
     78     *  
     79     * @param string $orderby The SQL query for the orderby part. 
     80     *  
     81     * @global object $wpdb The WPdb object. 
     82     *  
     83     * @return string 
     84     */ 
     85    public function modify_query_orderby( $orderby ) { 
     86        global $wpdb; 
     87        $orderby = "( TRIM( LEADING 'A ' FROM TRIM( LEADING 'AN ' FROM TRIM( LEADING 'THE ' FROM UPPER( $wpdb->posts.post_title ) ) ) ) )"; 
    8188 
    82     remove_filter( 'posts_orderby', array( $this, 'modify_query_orderby' ) ); 
    83     return $orderby; 
    84   } 
     89        remove_filter( 'posts_orderby', array( $this, 'modify_query_orderby' ) ); 
     90        return $orderby; 
     91    } 
    8592 
    8693} 
Note: See TracChangeset for help on using the changeset viewer.