[wp-trac] [WordPress Trac] #41373: WordPress 4.8 and WPML returns NULL on retrieve of translated slugname. Only ID works (was: Wordpress 4.8 and WPML returns NULL on retrieve of translated slugname. Only ID works)

WordPress Trac noreply at wordpress.org
Sat Sep 2 13:37:02 UTC 2017


#41373: WordPress 4.8 and WPML returns NULL on retrieve of translated slugname.
Only ID works
-------------------------------------------------+-------------------------
 Reporter:  BackuPs                              |       Owner:
     Type:  defect (bug)                         |      Status:  new
 Priority:  normal                               |   Milestone:  Awaiting
Component:  Taxonomy                             |  Review
 Severity:  normal                               |     Version:  4.8
 Keywords:  needs-testing needs-unit-tests       |  Resolution:
  reporter-feedback                              |     Focuses:
-------------------------------------------------+-------------------------
Description changed by SergeyBiryukov:

Old description:

> Hi
>
> There are mayor issues with wp 4.8 and wpml, polylang or any other
> multilanguage plugin.
>
> Since wp 4.8 the shortcode executed in the translated page is not calling
> the translated category anymore
>
> I have one category for my custom post type "portfolio" called "gallery"
> the category is translated to "gallerij" for the dutch language. They
> both have 3 posts attached. Each for their own language.
>
> I have this in my english page. [portfolio category="gallery"] calling
> the posts from the category gallery and it is showing 3 posts.
>
> The page is duplicated into Dutch but the shortcode is the SAME. So the
> dutch page also has [portfolio category="gallery"] and NOT [portfolio
> category="gallerij"]. So the dutch page is calling the English category.
>
> Now in wp 4.7.x this works perfectly and the dutch page shows the dutch
> portfolio items, or if you use a blog shortcode the blog items for each
> language.
>
> But the moment wp 4.8 is installed the dutch pages with shortcodes are
> empty and i need to set the Dutch page with the shortcode to translated
> independently and change the shortcode manually to [portfolio
> category="gallerij"] so that it is calling the dutch category called
> "gallerij"
>
> What changed in the wp code? The theme i am using did not change the
> theme code. Moreover it happens in any theme i try. The return is NULL
> when calling a slugname.
>
> I tested this 3 x times now in a clean wp install on my local host and i
> get similar results all the time.
>
> The moment i revert to wp 4.7 there is no issue. If i activate wp 4.8 the
> issue occurs and the translated page is empty not showing any portfolio
> or blog items.
>
> Note : i tested this in my local host and was able to reproduce the same
> issue over and over again by reverting back and forth to wp 4.7.4 and
> 4.8.
>
> Note : the categories are synchronized !! There is no issue in using the
> settings wrong or whatever.
>

>
> in wp 4.7.x this
>

> {{{#!php
> <?php
> $term_slug='gallery';
> $term_data = get_term_by( 'slug', $term_slug, 'category' );
> $term_id = (int) $term_data->term_id;
> echo 'term-id :'.$term_id;
> }}}
>

> returns the id of the translated category in the translated page.
>
> in wp 4.8 and above it returns 0 for that category in the translated page
> but the correct id in the page with primary original language.
>
> So there are two faillures here.
>
> The get_term_by fails but also the query fails... see previous reply.
> They both return nothing when wp 4.8 is used. $cat a list of category
> slugnames in the original default language
>
> {{{#!php
> <?php
> $query['tax_query'] = array(
>     array(
>         'taxonomy' => 'category',
>         'field' => 'slug',
>         'terms' => explode(',', $cat)
>     )
> );
>
> $r = new WP_Query($query);
> }}}
>

> $cat has the slugname(s) selected separated by a ','
>

> I reported this to wpml, https://wpml.org/forums/topic/translated-
> category/  but further testing learned that it happens in any
> multilanguage plugin so it must be a wp issue.
>
> As said it does not happen in wp 4.7.x or below.
>
> The solution provided for wpml does not work for me as all users have
> already generated shortcodes that use the slugnames, but more over these
> slugnames are used to filter the items by ajax filtering.
>
> its a big problem and serious bug.
>

> Pls provide a fix.

New description:

 Hi

 There are mayor issues with wp 4.8 and wpml, polylang or any other
 multilanguage plugin.

 Since wp 4.8 the shortcode executed in the translated page is not calling
 the translated category anymore

 I have one category for my custom post type "portfolio" called "gallery"
 the category is translated to "gallerij" for the dutch language. They both
 have 3 posts attached. Each for their own language.

 I have this in my english page. `[portfolio category="gallery"]` calling
 the posts from the category gallery and it is showing 3 posts.

 The page is duplicated into Dutch but the shortcode is the SAME. So the
 dutch page also has `[portfolio category="gallery"]` and NOT `[portfolio
 category="gallerij"]`. So the dutch page is calling the English category.

 Now in wp 4.7.x this works perfectly and the dutch page shows the dutch
 portfolio items, or if you use a blog shortcode the blog items for each
 language.

 But the moment wp 4.8 is installed the dutch pages with shortcodes are
 empty and i need to set the Dutch page with the shortcode to translated
 independently and change the shortcode manually to `[portfolio
 category="gallerij"]` so that it is calling the dutch category called
 "gallerij"

 What changed in the wp code? The theme i am using did not change the theme
 code. Moreover it happens in any theme i try. The return is NULL when
 calling a slugname.

 I tested this 3 x times now in a clean wp install on my local host and i
 get similar results all the time.

 The moment i revert to wp 4.7 there is no issue. If i activate wp 4.8 the
 issue occurs and the translated page is empty not showing any portfolio or
 blog items.

 Note : i tested this in my local host and was able to reproduce the same
 issue over and over again by reverting back and forth to wp 4.7.4 and 4.8.

 Note : the categories are synchronized !! There is no issue in using the
 settings wrong or whatever.



 in wp 4.7.x this


 {{{#!php
 <?php
 $term_slug='gallery';
 $term_data = get_term_by( 'slug', $term_slug, 'category' );
 $term_id = (int) $term_data->term_id;
 echo 'term-id :'.$term_id;
 }}}


 returns the id of the translated category in the translated page.

 in wp 4.8 and above it returns 0 for that category in the translated page
 but the correct id in the page with primary original language.

 So there are two faillures here.

 The get_term_by fails but also the query fails... see previous reply. They
 both return nothing when wp 4.8 is used. $cat a list of category slugnames
 in the original default language

 {{{#!php
 <?php
 $query['tax_query'] = array(
     array(
         'taxonomy' => 'category',
         'field' => 'slug',
         'terms' => explode(',', $cat)
     )
 );

 $r = new WP_Query($query);
 }}}


 $cat has the slugname(s) selected separated by a ','


 I reported this to wpml, https://wpml.org/forums/topic/translated-
 category/  but further testing learned that it happens in any
 multilanguage plugin so it must be a wp issue.

 As said it does not happen in wp 4.7.x or below.

 The solution provided for wpml does not work for me as all users have
 already generated shortcodes that use the slugnames, but more over these
 slugnames are used to filter the items by ajax filtering.

 its a big problem and serious bug.


 Pls provide a fix.

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/41373#comment:12>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list