Cómo insertar acentos en WordPress con PHP y MySQL

Cuando intentas hacer un INSERT en WordPress con textos escritos en PHP que contienen acentos es posible que después, al consultar los datos, veamos que los acentos en WordPress y la letra ñ se han convertido en interrogantes (?) u otros caracteres.

Esto tiene que ver con el tipo de cotejamiento que asigna WordPress a las tablas, en el caso de las instalaciones que manejamos, el valor por defecto es: latin1_swedish_ci.

Existe un método para que al insertar los datos desde PHP se conserven bien los acentos en WordPress si usamos la función utf8_encode aquí vemos un ejemplo rellenando una tabla de provincias de España.

$values="
    (1, 'Barcelona', 1, 1),
    (2, 'Girona', 1, 2),
    (3, 'Tarragona', 1, 3),
    (4, 'Lleida', 1, 4),
    (5, 'Valencia', 10, 0),
    (6, 'Madrid', 14, 0),
    (7, 'Mallorca', 5, 0),
    (8, 'Badajoz', 11, 0),
    (9, 'Málaga', 2, 0),
    (10, 'Murcia', 17, 0),
    (11, 'Sevilla', 2, 0),
    (15, 'Segovia', 9, 0),
    (16, 'Vizcaya', 16, 0),
    (17, 'Álava', 16, 0),
    (18, 'Albacete', 8, 0),
    (19, 'Alicante', 10, 0),
    (20, 'Almería', 2, 0),
    (21, 'Asturias', 21, 0),
    (22, 'Ávila', 9, 0),
    (23, 'Baleares', 5, 0),
    (24, 'Burgos', 9, 0),
    (25, 'Cáceres', 11, 0),
    (26, 'Cádiz', 2, 0),
    (27, 'Cantabria', 7, 0),
    (28, 'Castellón', 10, 0),
    (29, 'Ceuta', 18, 0),
    (30, 'Ciudad Real', 8, 0),
    (31, 'Córdoba', 2, 0),
    (32, 'Cuenca', 8, 0),
    (33, 'Granada', 2, 0),
    (34, 'Guadalajara', 8, 0),
    (35, 'Guipúzcoa', 16, 0),
    (36, 'Huelva', 2, 0),
    (37, 'Huesca', 3, 0),
    (38, 'Jaén', 2, 0),
    (39, 'La Coruña', 12, 0),
    (40, 'La Rioja', 13, 0),
    (41, 'Las Palmas', 20, 0),
    (42, 'León', 9, 0),
    (43, 'Lugo', 12, 0),
    (44, 'Melilla', 19, 0),
    (45, 'Navarra', 15, 0),
    (46, 'Orense', 12, 0),
    (47, 'Palencia', 9, 0),
    (48, 'Pontevedra', 12, 0),
    (49, 'Salamanca', 9, 0),
    (55, 'Valladolid', 9, 0),
    (51, 'Soria', 9, 0),
    (52, 'Tenerife', 20, 0),
    (53, 'Teruel', 3, 0),
    (54, 'Toledo', 8, 0),
    (56, 'Zamora', 9, 0),
    (57, 'Zaragoza', 3, 0);";
    $sql = "INSERT INTO wp_states (state_id, state_txt, region_id, state_val_id) VALUES  ". utf8_encode($values);
    $wpdb->query($sql);

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies