Skip to content

Instantly share code, notes, and snippets.

@oravecz
Created April 3, 2012 17:01
Show Gist options
  • Select an option

  • Save oravecz/2293673 to your computer and use it in GitHub Desktop.

Select an option

Save oravecz/2293673 to your computer and use it in GitHub Desktop.
<div>
<ul>
<li>I've installed stock Wordpress 3.3.1 and uploaded the WPML 2.4.3.</li>
<li>The blog has the &quot;Hello World!&quot; post and the &quot;Sample Page&quot; page. </li>
<li>I activate the WPML plugin and accept the defaults.</li>
<li>I activate XML-RPC.</li>
<li>Using XML-RPC, I perform a getPost() to obtain the first post details.<br />
{    &quot;dateCreated&quot;: &quot;2012-04-03T19:52:44.000Z&quot;,
<div>    &quot;userid&quot;: &quot;1&quot;,</div>
<div>    &quot;postid&quot;: 1,</div>
<div>    &quot;description&quot;: &quot;Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!&quot;,</div>
<div>    &quot;title&quot;: &quot;Hello world!&quot;,</div>
<div>    &quot;link&quot;: &quot;http://ruwad.info/?p=1&quot;,</div>
<div>    &quot;permaLink&quot;: &quot;http://ruwad.info/?p=1&quot;,</div>
<div>    &quot;categories&quot;: [</div>
<div>        &quot;Uncategorized&quot;</div>
<div>    ],</div>
<div>    &quot;mt_excerpt&quot;: &quot;&quot;,</div>
<div>    &quot;mt_text_more&quot;: &quot;&quot;,</div>
<div>    &quot;mt_allow_comments&quot;: 1,</div>
<div>    &quot;mt_allow_pings&quot;: 1,</div>
<div>    &quot;mt_keywords&quot;: &quot;&quot;,</div>
<div>    &quot;wp_slug&quot;: &quot;hello-world&quot;,</div>
<div>    &quot;wp_password&quot;: &quot;&quot;,</div>
<div>    &quot;wp_author_id&quot;: &quot;1&quot;,</div>
<div>    &quot;wp_author_display_name&quot;: &quot;jcook&quot;,</div>
<div>    &quot;date_created_gmt&quot;: &quot;2012-04-03T19:52:44.000Z&quot;,</div>
<div>    &quot;post_status&quot;: &quot;publish&quot;,</div>
<div>    &quot;custom_fields&quot;: [],</div>
<div>    &quot;wp_post_format&quot;: &quot;standard&quot;,</div>
<div>    &quot;sticky&quot;: false</div>
<div>}<br />
<strong>SQL query:</strong> SELECT * FROM `wp_icl_translations` LIMIT 0, 30 ; </div>
<div>
<div>
<p><strong>Rows:</strong> 6</p>
<div id="sqlqueryresults">
<table id="table_results">
<thead>
<tr>
<th>translation_id</th>
<th>element_type</th>
<th>element_id</th>
<th>trid</th>
<th>language_code</th>
<th>source_language_code</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td>post_page</td>
<td align="right">2</td>
<td align="right">2</td>
<td>en</td>
<td align="right"><em>NULL</em></td>
</tr>
<tr>
<td align="right">2</td>
<td>post_post</td>
<td align="right">1</td>
<td align="right">1</td>
<td>en</td>
<td align="right"><em>NULL</em></td>
</tr>
<tr>
<td align="right">3</td>
<td>tax_category</td>
<td align="right">1</td>
<td align="right">4</td>
<td>en</td>
<td align="right"><em>NULL</em></td>
</tr>
<tr>
<td align="right">4</td>
<td>tax_link_category</td>
<td align="right">2</td>
<td align="right">7</td>
<td>en</td>
<td align="right"><em>NULL</em></td>
</tr>
<tr>
<td align="right">5</td>
<td>comment</td>
<td align="right">1</td>
<td align="right">9</td>
<td>en</td>
<td align="right"><em>NULL</em></td>
</tr>
<tr>
<td align="right">6</td>
<td>tax_category</td>
<td align="right">3</td>
<td align="right">4</td>
<td>ar</td>
<td>en</td>
</tr>
</tbody>
</table>
<br />
</div>
<div id="sqlqueryresults">Custom fields are empty and this may be as expected. After all, this is a post that existed prior to using the WPML plugin.<br />
<br />
</div>
</div>
</div>
</li>
<li>I manually add a new post and its accompanying arabic translation using wordpress.</li>
<li>The result of getPost() looks no different than a post without the WPML plugin installed.<br />
<div>{</div>
<div>    &quot;dateCreated&quot;: &quot;2012-04-03T19:21:52.000Z&quot;,</div>
<div>    &quot;userid&quot;: &quot;1&quot;,</div>
<div>    &quot;postid&quot;: 5,</div>
<div>    &quot;description&quot;: &quot;This is a post in English.&quot;,</div>
<div>    &quot;title&quot;: &quot;Example Post 1&quot;,</div>
<div>    &quot;link&quot;: &quot;http://ruwad.info/?p=5&quot;,</div>
<div>    &quot;permaLink&quot;: &quot;http://ruwad.info/?p=5&quot;,</div>
<div>    &quot;categories&quot;: [</div>
<div>        &quot;Uncategorized&quot;</div>
<div>    ],</div>
<div>    &quot;mt_excerpt&quot;: &quot;&quot;,</div>
<div>    &quot;mt_text_more&quot;: &quot;&quot;,</div>
<div>    &quot;mt_allow_comments&quot;: 1,</div>
<div>    &quot;mt_allow_pings&quot;: 1,</div>
<div>    &quot;mt_keywords&quot;: &quot;&quot;,</div>
<div>    &quot;wp_slug&quot;: &quot;&quot;,</div>
<div>    &quot;wp_password&quot;: &quot;&quot;,</div>
<div>    &quot;wp_author_id&quot;: &quot;1&quot;,</div>
<div>    &quot;wp_author_display_name&quot;: &quot;jcook&quot;,</div>
<div>    &quot;date_created_gmt&quot;: &quot;2012-04-03T19:21:52.000Z&quot;,</div>
<div>    &quot;post_status&quot;: &quot;draft&quot;,</div>
<div>    &quot;custom_fields&quot;: [],</div>
<div>    &quot;wp_post_format&quot;: &quot;standard&quot;,</div>
<div>    &quot;sticky&quot;: false</div>
<div>}</div>
<div><br />
</div>
<div>{</div>
<div>    &quot;dateCreated&quot;: &quot;2012-04-03T19:24:49.000Z&quot;,</div>
<div>    &quot;userid&quot;: &quot;1&quot;,</div>
<div>    &quot;postid&quot;: 7,</div>
<div>    &quot;description&quot;: &quot;This is a post in Arabic.&quot;,</div>
<div>    &quot;title&quot;: &quot;Example Post 1 (Arabic)&quot;,</div>
<div>    &quot;link&quot;: &quot;http://ruwad.info/?p=7&amp;amp;lang=ar&quot;,</div>
<div>    &quot;permaLink&quot;: &quot;http://ruwad.info/?p=7&amp;amp;lang=ar&quot;,</div>
<div>    &quot;categories&quot;: [</div>
<div>        &quot;Uncategorized&quot;</div>
<div>    ],</div>
<div>    &quot;mt_excerpt&quot;: &quot;&quot;,</div>
<div>    &quot;mt_text_more&quot;: &quot;&quot;,</div>
<div>    &quot;mt_allow_comments&quot;: 1,</div>
<div>    &quot;mt_allow_pings&quot;: 1,</div>
<div>    &quot;mt_keywords&quot;: &quot;&quot;,</div>
<div>    &quot;wp_slug&quot;: &quot;&quot;,</div>
<div>    &quot;wp_password&quot;: &quot;&quot;,</div>
<div>    &quot;wp_author_id&quot;: &quot;1&quot;,</div>
<div>    &quot;wp_author_display_name&quot;: &quot;jcook&quot;,</div>
<div>    &quot;date_created_gmt&quot;: &quot;2012-04-03T19:24:49.000Z&quot;,</div>
<div>    &quot;post_status&quot;: &quot;draft&quot;,</div>
<div>    &quot;custom_fields&quot;: [],</div>
<div>    &quot;wp_post_format&quot;: &quot;standard&quot;,</div>
<div>    &quot;sticky&quot;: false</div>
<div>}</div>
<div><br />
</div>
<div>
<p><strong>SQL query:</strong> SELECT * FROM `wp_icl_translations` LIMIT 0, 30 ; <br />
<strong>Rows:</strong> 8</p>
<div id="sqlqueryresults">
<table id="table_results">
<thead>
<tr>
<th>translation_id</th>
<th>element_type</th>
<th>element_id</th>
<th>trid</th>
<th>language_code</th>
<th>source_language_code</th>
</tr>
</thead>
<tbody>
<tr>
<td>8</td>
<td>post_post</td>
<td>5</td>
<td>10</td>
<td>en</td>
<td><em>NULL</em></td>
</tr>
<tr>
<td>9</td>
<td>post_post</td>
<td>7</td>
<td>10</td>
<td>ar</td>
<td>en</td>
</tr>
</tbody>
</table>
<br />
</div>
</div>
<div id="sqlqueryresults">So, we can see the database column trid is &quot;tieing&quot; post 5 and post 7 together as a single entity. However, there are no custom fields for _wpml_translation, _wpml_trid, or _wpml_translations. Perhaps these fields are only present when a post is created using XML-RPC?</div>
<div id="sqlqueryresults"><br />
</div>
</li>
<li>This time, I insert a two new post into my blog using the WordPress XML-RPC api. One post is marked using a custom field as English (Using the _wpml_language = &quot;en&quot;) and the other is Arabic (using _wpml_language = 'ar'). Each post has a custom field with _wpml_trid = '11'. Here is the request for the Arabic post.<br />
<div>&lt;methodCall&gt;</div>
<div> &lt;methodName&gt;metaWeblog.newPost&lt;/methodName&gt;</div>
<div> &lt;params&gt;</div>
<div> &lt;param&gt;</div>
<div> &lt;int&gt;1&lt;/int&gt;</div>
<div> &lt;string&gt;admin&lt;/string&gt;</div>
<div> &lt;string&gt;Ruw@d13&lt;/string&gt;</div>
<div> &lt;struct&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;wp_slug&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;wood-and-nickels-cashing-in-on-good-relationship_eng.html&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;wp_password&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string/&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;wp_page_parent_id&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;0&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;wp_page_order&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;0&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;wp_author_id&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;1&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;title&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;?????? ?????? ????????? ??????&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;post_type&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;post&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;description&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;??????: ???? ???blah, blah...&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;mt_excerpt&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;This is an excerpt&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;mt_text_more&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string/&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;mt_allow_comments&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;0&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;mt_allow_pings&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;0&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;dateCreated&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;dateTime.iso8601&gt;2009-12-07T18:07:32.000Z&lt;/dateTime.iso8601&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;custom_fields&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;array&gt;&lt;data&gt;</div>
<div> &lt;struct&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;key&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;key&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;value&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;article-key-70&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;/struct&gt;</div>
<div> &lt;struct&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;key&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;locale&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;value&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;ar&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;/struct&gt;</div>
<div> &lt;struct&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;key&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;_wpml_language&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;value&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;5&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;/struct&gt;</div>
<div> &lt;struct&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;key&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;string&gt;_wpml_trid&lt;/string&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;value&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;int&gt;11&lt;/int&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;/struct&gt;</div>
<div> &lt;/data&gt;&lt;/array&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;member&gt;</div>
<div> &lt;name&gt;publish&lt;/name&gt;</div>
<div> &lt;value&gt;&lt;boolean&gt;false&lt;/boolean&gt;&lt;/value&gt;</div>
<div> &lt;/member&gt;</div>
<div> &lt;/struct&gt;</div>
<div> &lt;/param&gt;</div>
<div> &lt;/params&gt;</div>
<div>&lt;/methodCall&gt;</div>
<div><br />
</div>
<div>The wp_icl_translations file shows that the use of the custom fields accomplished nothing. The English post is #10 and the Arabic post is #12. Neither the language_code or the trid was affected.<br />
<table id="table_results">
<thead>
<tr>
<th>translation_id</th>
<th>element_type</th>
<th>element_id</th>
<th>trid</th>
<th>language_code</th>
<th>source_language_code</th>
</tr>
</thead>
<tbody>
<tr>
<td>10</td>
<td>post_post</td>
<td>10</td>
<td>11</td>
<td>en</td>
<td><em>NULL</em></td>
</tr>
<tr>
<td>11</td>
<td>post_post</td>
<td>12</td>
<td>12</td>
<td>en</td>
<td><em>NULL</em></td>
</tr>
</tbody>
</table>
</div>
<div><br />
</div>
</li>
<li>The wp_postmeta table shows that my custom fields were added to the post, but no _wpml fields appear.<br />
<p><strong>SQL query:</strong> SELECT * FROM `wp_postmeta` LIMIT 0, 30 ; <br />
<strong>Rows:</strong> 9</p>
<div id="sqlqueryresults">
<table id="table_results">
<thead>
<tr>
<th>meta_id</th>
<th>post_id</th>
<th>meta_key</th>
<th>meta_value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td align="right">2</td>
<td>_wp_page_template</td>
<td align="left">default</td>
</tr>
<tr>
<td align="right">5</td>
<td align="right">5</td>
<td>_edit_lock</td>
<td align="left">1333467182:1</td>
</tr>
<tr>
<td align="right">4</td>
<td align="right">5</td>
<td>_edit_last</td>
<td align="left">1</td>
</tr>
<tr>
<td align="right">6</td>
<td align="right">7</td>
<td>_edit_last</td>
<td align="left">1</td>
</tr>
<tr>
<td align="right">7</td>
<td align="right">7</td>
<td>_edit_lock</td>
<td align="left">1333466587:1</td>
</tr>
<tr>
<td align="right">8</td>
<td align="right">10</td>
<td>key</td>
<td align="left">article-key-70</td>
</tr>
<tr>
<td align="right">9</td>
<td align="right">10</td>
<td>locale</td>
<td align="left">ar</td>
</tr>
<tr>
<td align="right">10</td>
<td align="right">12</td>
<td>key</td>
<td align="left">article-key-70</td>
</tr>
<tr>
<td align="right">11</td>
<td align="right">12</td>
<td>locale</td>
<td align="left">en</td>
</tr>
</tbody>
</table>
</div>
</li>
</ol>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment