[wp-trac] [WordPress Trac] #47584: Wrap __ function in function_exists
    WordPress Trac 
    noreply at wordpress.org
       
    Fri Jun 21 09:30:52 UTC 2019
    
    
  
#47584: Wrap __ function in function_exists
-------------------------+-----------------------------
 Reporter:  fishpig      |      Owner:  (none)
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  I18N         |    Version:
 Severity:  normal       |   Keywords:
  Focuses:               |
-------------------------+-----------------------------
 The translation function is named in a way that all other applications
 seem to name their translation function. This causes a fatal PHP error
 when integrating platforms into WordPress (or WordPress into other
 platforms). The only fix for this is to apply this patch via code, which
 requires write permissions. This isn't great for security.
 An easy fix for this (which won't affect functionality in WordPress), is
 to wrap the function in a call to function_exists in the core code.
 {{{#!php
 <?php
 if (!function_exists('__')) {
   function __( $text, $domain = 'default' ) {
     return translate( $text, $domain );
   }
 }
 }}}
 If WordPress is running on it's own (not integrated by another platform),
 the function will always be defined. If WordPress is included by another
 code library that has defined the function then it won't be re-defined.
 As this function in WordPress is just a wrapper for the WordPress
 translate function, the translation function defined in another
 application can still access WordPress translations using this function.
 {{{#!php
 <?php
 function __($text, $domain = 'default') {
  if (is_currently_in_wp()) {
   // Call WordPress translate functions
   return call_user_func_array('translate', func_get_args());
  }
  // Handle other translation stuff here
 }
 }}}
-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/47584>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
    
    
More information about the wp-trac
mailing list