我在WordPress 3.8.1中使用WPML 3.0.2-a
我有一个这样定义的自定义帖子类型:
function add_custom_posts(){
$args = array(
'labels' => array(
'name' => __( 'Showcases' ),
'singular_name' => __( 'Showcases' ),
'add_new_item' => __( 'Add New Showcase'),
'edit_item' => __( 'Edit Showcases' ),
'view_item' => __( 'View Showcase' ),
'search_items' => __( 'Search Showcases' ),
'not_found' => __( 'No Showcases found.' ),
'not_found_in_trash' => __( 'No Showcases found in Trash.' )
),
'public' => true,
'has_archive' => 'case-studies',
'menu_position' => 5,
'taxonomies' => array('post_tag'),
'supports' => array( 'title', 'thumbnail', 'editor', 'excerpt', 'page-attributes' ),
'rewrite' => array('slug' => 'case-studies', 'with_front' => false),
'capability_type' => 'post',
'hierarchical' => false,
);
register_post_type('showcases', $args);
}
add_action( 'init', 'add_custom_posts', 100 );
访问自定义帖子类型档案和默认语言的单个帖子URL可以正常工作。例如:
/case-studies/
/case-studies/%postname%/
正在完美地工作并显示他们应该做的事情。
但是,它不适用于其他语言:
/de/case-studies/
/de/case-studies/%postname%/
都显示WordPress主题的index.php模板。实际上是404页,但是由于我们没有404.php,因此使用index.php。
在WPML设置中,展示案例的帖子类型可以翻译。
您知道这是为什么以及如何解决吗?
参考方案
我发现this support thread在其中说应该更改以下行(在您的代码中):
'has_archive' => 'case-studies',
至:
'has_archive' => icl_translate('wpml_custom', 'wpml_custom_showcases', 'case-studies'),
最好向官方寻求支持,因为它是商业软件,并且没有可用的文档。
PHP:对数组排序 - php请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
PHP-从最后一个循环中删除逗号 - php我在循环时有一个PHP,如果是最后一个循环,我想从,中删除最后一个逗号echo '],'; while($ltr = mysql_fetch_array($lt)){ echo '['; echo $ltr['days']. ' ,'. $ltr['name…