Setting up partial Right-to-Left admin interface

I am building a custom theme WordPress instance, which needs to be Arabic at the public face and English on Admin site, but with RTL (flush right) in editing fields. My theme takes care of the public face, but I need help with themeing the admin side.

I know there is a way to make the blog all Arabic, but I wanted all the admin labels and category names to stay English. I only want all admin text entry fields to become RTL. Oh, and plugins-generated text entry fields too, but I suspect that’s more difficult.

Read More

I know it is a CSS change, but not sure where to start with such partial customization of the interface.

Related posts

Leave a Reply

1 comment

  1. Good question. I was able to make the whole admin RTL with a little plugin (I wrote it as a must-use plugin, but should work in the in the standard plugin folder as well). It’s a very simple version, see the output here:

    RTL Admin v0.1 screen output

    This is the plugin code (my file-name: rtl-admin.php):

    <?php
    /**
     * RTL Admin WordPress Plugin
     *
     * @-wp-header Plugin Name: RTL Admin
     * @-wp-header Author: hakre
     * @-wp-header Version: 0.1
     * @-wp-header Author URI: http://hakre.wordpress.com/
     *
     * @author hakre <hakre.wordpress.com>
     * 
     * Copyright 2010  hakre <hakre.wordpress.com>
     *  
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation; either version 3 of the License, or
     * (at your option) any later version.
     *  
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     * 
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     */
    
    class RTLAdminPlugin {
     private static $instance;
     public static function bootstrap() {
      defined('WP_ADMIN') && WP_ADMIN 
      && (self::$instance === null) 
      && (self::$instance = new RTLAdminPlugin());
     }
     public function __construct() {
      $r = add_filter('admin_init', array($this, 'admin_init'));
     }
     public function admin_init() {
      $GLOBALS['wp_locale']->text_direction = rtl;
     }
    } // class
    
    RTLAdminPlugin::bootstrap();
    
    return;
    #EOF;