Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Linkoteca. Pods


add_filter( 'pods_field_pick_data_ajax_items', 'custom_pods_labels_in_pick_field_ajax', 1, 6 );
add_filter( 'pods_field_pick_data', 'custom_pods_labels_in_pick_field_data', 1, 6 );

function custom_pods_labels_in_pick_field_ajax($items, $name, $value, $options, $pod, $id) {
    if ( 'FIELDNAME' == $name ) {
        foreach ( $items as $key => &$data ) {
            if ( isset( $data['id'] ) ) {
                $data['text'] = custom_pods_select_field_label( $data['id'] );
                $data['name'] = $data['text'];
            }
        }
    }
    return $items;
}


function custom_pods_labels_in_pick_field_data($items, $name, $value, $options, $pod, $id) {
    // pods_meta_ prefix for Pods backend, pods_field_ prefix for front-facing Pods form
    if ( 'pods_meta_FIELDNAME' === $name || 'pods_field_FIELDNAME' === $name ) {
        if ( ! empty( $items ) && is_array( $items ) ) {
            foreach ( $items as $key => $item ) {
                if ( isset( $item['id'] ) ) {
                    $data['text'] = custom_pods_select_field_label( $data['id'] );
                    $data['name'] = $data['text'];
                } elseif ( is_numeric( $key ) && ! is_array( $item ) ) {
                    $items[ $key ] = custom_pods_select_field_label( $key );
                }
            }
        }
    }
    
    return $items;
}

function custom_pods_select_field_label( $id ) {
    // You can return anything you want here.
}

en el caso de que se estén empleando plugins para el desarrollo de una solución WordPress que no sean compatibles con WPML, por ejemplo PODS, una solución interesante, es duplicar el mismo post o tipo de contenido, que ha sido creado con elementos del plugin incompatible y aprovechar cada versión para cada uno de los idiomas que hemos configurado para nuestro sitio, diferenciando cada post con una nomenclatura, por ejemplo con el diminutivo (_en, _es, _fr) del idioma en el slug o (-EN, -ES, -FR) en el nombre del mismo.

Para que luego WordPress distnga cual de esos bloques o contenidos pertenece al idioma concreto, utilizamos la constante ICL_LANGUAGE_CODE, definida por WPML, que se pueden emplear como parte del nuestro tema, para poder invocar el contenido de un post u otro en dependencia del idioma actual con el que se está navegando en nuestro sitio, idioma almacenado en la constante antes mencionada.

De esta manera un ejemplo podría ser:

if (ICL_LANGUAGE_CODE == 'en')