Open shankie-codes opened 9 years ago
Hi, same question from me! I think that would be useful to have the option to get the raw content of a field. In my case I'm trying to write a pdf document in a different language than the one displayed in current web page. I've found a little workaround: defining and setting the value of a custom qtranslate option _$q_config['return_raw']_ changing few lines in _acf-qtranslate/src/acf5/acf.php
public function __construct($plugin) { $this->plugin = $plugin; global $q_config; isset($q_config['return_raw']) ? $q_config['return_raw'] : $q_config['return_raw']=0; add_filter('acf/format_value', array($this, 'format_value')); add_action('acf/include_fields', array($this, 'include_fields')); add_action('acf/input/admin_enqueue_scripts', array($this, 'admin_enqueue_scripts')); }
and
public function format_value($value) { global $q_config; if (is_string($value)) { if($q_config['return_raw'] == 0){ $value = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value); }else{ $q_config['return_raw'] = 0; // reset to zero to be sure next field will be formatted as usual } } return $value; }
then at the bottom of acf-qtranslate/compatibility/qtranslatexs.php
function get_field_raw( $selector, $post_id = false, $format_value = true ) { global $q_config; $q_config['return_raw'] = 1; return get_field( $selector, $post_id , $format_value ); }
Now I can get the raw content of a _acf_qtranslate_acf_5textarea and _acf_qtranslate_acf_5text using the funcion _get_fieldraw in the same way you use the already provided _getfield function, but it doesn't with the _acf_qtranslate_acf_5wysiwyg field.
I can't manage to get the raw data from this field type
Any help would be apreciated.
Hi there Funkjedi,
The plugin (very helpfully for the most part) applies the filter before the value is returned to the template using
get_field()
. Indeed, this is the core of the plugin!However, in certain circumstances, I'd like to be able to control how the field is returned to the template. For instance, qTranslate-x provides the following functions to control how a given request is handled if the requested language isn't found:
qtranxf_useCurrentLanguageIfNotFoundShowEmpty() qtranxf_useCurrentLanguageIfNotFoundShowAvailable() qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage()
However, the plugin always bakes in
qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage()
.I'd like to be able to either set my return preferences for the field, or better yet, have the option to return the raw field content – which would then allow the developer to pass the returned raw content through the
qtranxf_useCurrentLanguageIfNotFound
function of his/her choosing.Any thoughts on how to do this?
Cheers,
Andrew