Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:将翻译后的标记添加到类别列表_Php_Wordpress - Fatal编程技术网

PHP:将翻译后的标记添加到类别列表

PHP:将翻译后的标记添加到类别列表,php,wordpress,Php,Wordpress,我有一个用Wordpress模板制作的网站,我安装了一个翻译插件(qtranslate) 在我的“相册”页面中,当我以默认语言(英语)对项目进行排序时,一切正常,但是如果我更改为另一种翻译(例如法语),类别名称将更改,标记的项目将不再显示 下面是执行该函数的PHP代码 <ul class="filter_portfolio"> <?php // Get the taxonomy

我有一个用Wordpress模板制作的网站,我安装了一个翻译插件(qtranslate)

在我的“相册”页面中,当我以默认语言(英语)对项目进行排序时,一切正常,但是如果我更改为另一种翻译(例如法语),类别名称将更改,标记的项目将不再显示

下面是执行该函数的PHP代码

<ul class="filter_portfolio"> 

                <?php
                    // Get the taxonomy


                    $terms = get_terms('filter', $args);
                    // set a count to the amount of categories in our taxonomy
                    $count = count($terms); 
                    // set a count value to 0
                    $i=0;
                    // test if the count has any categories
                    if ($count > 0) {
                        // break each of the categories into individual elements
                        foreach ($terms as $term) {
                            // increase the count by 1
                            $i++;


                            // rewrite the output for each category

                            $term_list .= '<li class="segment-'.$i.'"><a href="javascript:void(0)" data-value="' . $term->slug . '">' . $term->name . '</a></li>';


                            // if count is equal to i then output blank
                            if ($count != $i)
                            {
                                $term_list .= '';
                            }
                            else 
                            {
                                $term_list .= '';
                            }
                        }
                        // print out each of the categories in our new format
                        echo $term_list;

                    }
                ?>

            </ul>

非常感谢你的帮助

我怀疑您使用类别名称来过滤数据库记录。因此,在db中只有“englsh”名称,当您“翻译”它时,您的脚本无法正常工作,因为它使用了新的“french”名称

在执行查询之前,是否可以尝试将类别名称转换为英语?


编辑
我实际上认为,您需要找到一种方法,将两个变量传递给php脚本。任何适合您需要的。
例如,一些可能的场景是:
-英语+语言类别(fr)=根据所选语言查询数据库并返回正确结果(基于英语工作思路)
-类别id+语言(fr)=与上面相同,但更通用,因为您使用id从表中获取数据。

我猜您必须对html和php脚本进行一些更改(一个用于传递正确的数据,另一个用于返回正确的格式)。


能否给出
get\u terms()
函数代码?似乎正是这个函数创建了您想要的项目列表,以及需要进行翻译调整的位置。是的,如果我在每次翻译中都将类别名称更改为相同,则脚本将获得“名称”,而不是“slug”。slug在所有的翻译中都是一样的,值得一试。我真的很抱歉,但我不认为我在跟随,我把每个翻译中的类别名称都转换成了英语。这就是你的意思吗?你能告诉我应该使用哪个函数来查询我的数据库吗?我搜索了PHP手册,找到了“Mysqli”扩展。但是我找不到适合这个案子的。谢谢
function qtranslate_edit_taxonomies(){
$args=array(
  'public' => true ,
  '_builtin' => false
);
$output = 'object'; // or objects
$operator = 'and'; // 'and' or 'or'

$taxonomies = get_taxonomies($args,$output,$operator); 

if  ($taxonomies) {
 foreach ($taxonomies  as $taxonomy ) {
     add_action( $taxonomy->name.'_add_form', 'qtrans_modifyTermFormFor');
     add_action( $taxonomy->name.'_edit_form', 'qtrans_modifyTermFormFor');        

 }
 }

}
add_action('admin_init', 'qtranslate_edit_taxonomies');
?>