WordPress.org

Ready to get started?Download WordPress

Forums

WordPress Related Posts
[resolved] Issue with Related Posts plugin (15 posts)

  1. Pedro_md7
    Member
    Posted 6 months ago #

    Hello, we’re having an issue with the related posts plugin when trying to add a tag with special characters like accents.
    When making the post, the post is published, but we get the following error:

    Error Incorrect string value: '\xE3\xB3n' for column 'label' at row 1 de la base de datos de WordPress para la consulta INSERT INTO wp_wp_rp_tags (post_id, post_date, label, weight)
    VALUES (2770, '2014-02-12 11:46:04', 'P_arrecife corazã³n', 10.000000), (2770, '2014-02-12 11:46:04', 'P_australia', 10.000000), (2770, '2014-02-12 11:46:04', 'P_heart reef', 10.000000), (2770, '2014-02-12 11:46:04', 'P_oceanã¬a', 10.000000), (2770, '2014-02-12 11:46:04', 'P_san valentã¬n', 10.000000), (2770, '2014-02-12 11:46:04', 'C_destacamos', 5.000000), (2770, '2014-02-12 11:46:04', 'C_lugares increibles', 5.000000), (2770, '2014-02-12 11:46:04', 'A_de', 2.000000), (2770, '2014-02-12 11:46:04', 'A_la', 2.000000), (2770, '2014-02-12 11:46:04', 'A_el', 2.000000), (2770, '2014-02-12 11:46:04', 'A_del', 2.000000), (2770, '2014-02-12 11:46:04', 'A_reef', 2.000000), (2770, '2014-02-12 11:46:04', 'A_en', 2.000000), (2770, '2014-02-12 11:46:04', 'A_gran', 2.000000), (2770, '2014-02-12 11:46:04', 'A_san', 2.000000), (2770, '2014-02-12 11:46:04', 'A_ella', 2.000000), (2770, '2014-02-12 11:46:04', 'A_largo', 2.000000), (2770, '2014-02-12 11:46:04', 'A_coral', 2.000000), (2770, '2014-02-12 11:46:04', 'A_tan', 2.000000), (2770, '2014-02-12 11:46:04', 'A_lo', 2.000000), (2770, '2014-02-12 11:46:04', 'A_bruce', 2.000000), (2770, '2014-02-12 11:46:04', 'A_grand', 2.000000); realizada por require('C:\Inetpub\webs\grupoeuropa_com_Blog\wp-blog-header.php'), require_once('C:\Inetpub\webs\grupoeuropa_com_Blog\wp-includes\template-loader.php'), include('C:\Inetpub\webs\grupoeuropa_com_Blog\wp-content\themes\delicacy\single.php'), the_content, apply_filters('the_content'), call_user_func_array, wp_rp_add_related_posts_hook, wp_rp_get_related_posts, wp_rp_fetch_posts_and_title, wp_rp_append_posts, call_user_func, wp_rp_fetch_related_posts_v2, wp_rp_generate_tags

    https://wordpress.org/plugins/wordpress-23-related-posts-plugin/

  2. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    Hey, thanks for reporting this. We'll look into it asap and get back to you.

    Best, Mateja

  3. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    Hi again,

    unfortunately I cannot reproduce this issue.

    Can you please provide me with URL to your blog or sample text (and tags)?
    Also, it would be very useful to know which collation is used by the tables in your WP database.

    Best,
    Mateja

  4. Pedro_md7
    Member
    Posted 6 months ago #

    Thanks for the reply.

    Okey, for example this post: http://blog.grupoeuropa.com/index.php/ronda-candidato-a-ser-patrimonio-de-la-humanidad/. Its tags is "España, Europa, Patrimonio de la Humanidad, Ronda". In particular, the failure is given by the character 'ñ' of "España".

    However, the post works again refreshing the page, then check yourself.

    Greetings and thanks for the help.

  5. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    I've created a new blog posts with text from your URL and with these tags, but still can't get the error. We have debug and error logging enabled.

    Can you please check the collation of your tables and let me know if it's utf8_general_ci or something else?

  6. Pedro_md7
    Member
    Posted 6 months ago #

    Hello again, sorry it took so long to answer, is that I have no direct access to the database.

    We executed the following line in the database and keeps crashing.

    ALTER TABLE wp_wp_rp_tags DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    Thanks.

  7. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    I suggest you also change character set and collation for column label too, because this was not changed by previous SQL statement:

    ALTER TABLE wp_wp_rp_tags MODIFY COLUMN label VARCHAR(32)
        CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

    Let me know how it goes.

  8. Pedro_md7
    Member
    Posted 6 months ago #

  9. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    Ok, this is strange...

    Can you please check values for DB_CHARSET and DB_COLLATE in your wp-config.php ?

    Which collation is set for other tables in your blog's database?

    Is this particular post the only post where this is happening? Or does it happen with other posts as well?

  10. Pedro_md7
    Member
    Posted 6 months ago #

    The value for DB_CHARSET in wp_config.php is set to utf8, however, the value for DB_COLLATE is set to an empty string (''). The collation for all the tables in the database is set to utf8_general_ci.

    This seems to happen when making any posts with special characters such as accents or "ñ".

  11. Mateja
    Member
    Plugin Author

    Posted 6 months ago #

    According to StackOverflow thread this issue could be related to the problem of MySQL instance not being configured to expect UTF-8 encoding by default from client connections.

    There is one more thing you can try... Now that you have changed the character set and collation for table wp_wp_rp_tags and column label to utf-8, I suggest you add following line of code in plugin's file recommendations.php:

    $wpdb->query("SET NAMES utf8");

    just before the INSERT query (line 149):

    if (count($all_tags) > 0 && $post->post_status == 'publish') {
    		$sql_tag_format_line = '(%d, %s, %s, %f)';
    		$wpdb->query("SET NAMES utf8");
    		$tags_insert_query = $wpdb->prepare('INSERT INTO ' . $wpdb->prefix . 'wp_rp_tags (post_id, post_date, label, weight)
    				VALUES ' . implode(', ', array_fill(0, count($all_tags), $sql_tag_format_line)) . ';',
    			$sql_tag_values);
    
    		$wpdb->query($tags_insert_query);
    	}

    Let me know if this works.

  12. Pedro_md7
    Member
    Posted 6 months ago #

    Hello, we have tried to set the collation of both the field and the table and it doesn't seem to work. What I've noticed is the following:
    When I send the post from within the page, I can see that the client is sending the form data correctly, however, I don’t know what encoding it is using (see the parameter in the post below):

    http://imageshack.com/a/img823/2325/d2k0.jpg

    However, the SQL instruction is:

    INSERT INTO wp_wp_rp_tags (post_id, post_date, label, weight)
    VALUES (2778, '2014-02-17 13:36:46', 'P_amantes de teruel', 10.000000), (2778, '2014-02-17 13:36:46', 'P_bodas de isabel de segura', 10.000000), (2778, '2014-02-17 13:36:46', 'P_espaã±a', 10.000000), (2778, '2014-02-17 13:36:46', 'P_teruel', 10.000000), (2778, '2014-02-17 13:36:46', 'C_destacamos', 5.000000), (2778, '2014-02-17 13:36:46', 'C_noticias', 5.000000), (2778, '2014-02-17 13:36:46', 'C_reto de grupo europa', 5.000000), (2778, '2014-02-17 13:36:46', 'A_de', 2.000000), (2778, '2014-02-17 13:36:46', 'A_isabel', 2.000000), (2778, '2014-02-17 13:36:46', 'A_durant', 2.000000), (2778, '2014-02-17 13:36:46', 'A_lo', 2.000000), (2778, '2014-02-17 13:36:46', 'A_la', 2.000000), (2778, '2014-02-17 13:36:46', 'A_diego', 2.000000), (2778, '2014-02-17 13:36:46', 'A_san', 2.000000), (2778, '2014-02-17 13:36:46', 'A_semana', 2.000000), (2778, '2014-02-17 13:36:46', 'A_padr', 2.000000), (2778, '2014-02-17 13:36:46', 'A_iglesia', 2.000000), (2778, '2014-02-17 13:36:46', 'A_el', 2.000000), (2778, '2014-02-17 13:36:46', 'A_pedro', 2.000000), (2778, '2014-02-17 13:36:46', 'A_cinco', 2.000000), (2778, '2014-02-17 13:36:46', 'A_hoi', 2.000000), (2778, '2014-02-17 13:36:46', 'A_don', 2.000000);

    In which it’s trying to insert 'P_espaã±a'. It seems to be a problem in an encoding discrepancy between the encoding the server is expecting, and the encoding it’s receiving from the client. Is there a way we can make the server expect a different encoding, or to change the post encoding so the server receives the post correctly?

    Best regards.

  13. ddksr
    Member
    Plugin Author

    Posted 6 months ago #

    Hello Pedro

    we still can't reproduce your issue. We suspect your server settings, php settings and database settings are not consistent. There is still something you can try.

    Please edit recommendations.php in the plugin directory (line 135) and replace

    $label = $tag_obj['prefix'] . strtolower($label);

    with

    $label = $tag_obj['prefix'] . mb_convert_encoding(strtolower($label), "UTF-8");

    and if it still doesn't work try also

    $label = $tag_obj['prefix'] . mb_convert_encoding(mb_strtolower($label), "UTF-8");

    Please let us know if it works.

  14. Pedro_md7
    Member
    Posted 6 months ago #

    Yes! it has finally solved the problem by replacing line 35 by:

    $label = $tag_obj['prefix'] . mb_convert_encoding(strtolower($label), "UTF-8");

    Infinite thanks for the help, really.

    Regards, Pedro.

  15. ddksr
    Member
    Plugin Author

    Posted 6 months ago #

    Great!
    We will include the fix in one of our upcoming releases.

    Thank you for helping us solve the issue.
    Best regards,
    Sigi

Reply

You must log in to post.

About this Plugin

About this Topic

Tags

No tags yet.