如何使自定义帖子meta wp_EDITOR可翻译?

时间:2015-02-23 作者:shashank

我有一个名为soto\\u property的自定义post类型,其中我使用以下代码添加了三个wp\\u编辑器作为post meta-

 wp_editor( htmlspecialchars_decode($valueeee1),
               \'propertyEditor1\',
               $settings = array(\'textarea_name\'=>\'detail\',
                                 \'editor_class\'=>\'propertyEditor\')
              );

    wp_editor( htmlspecialchars_decode($valueeee2),
               \'propertyEditor2\',
               $settings = array(\'textarea_name\'=>\'features\',
                                 \'editor_class\'=>\'propertyEditor\')
              );

    wp_editor( htmlspecialchars_decode($valueeee3),
               \'propertyEditor3\',
               $settings = array(\'textarea_name\'=>\'text_to_pdf\',
                                 \'editor_class\'=>\'propertyEditor\')
              );
现在我已安装qtranslate 插件,使我的网站多语言。此插件自动在其默认内容编辑器中添加语言选项卡。我还想在我的自定义编辑器中添加这些语言选项卡,以便它可以用定义的语言保存内容。

我该怎么做。?请帮帮我。

3 个回复
SO网友:Karolína Vyskočilová

看起来已经回答了here on stackexchange (非常详细的方式),首先您可以尝试:

add_filter(\'soto_property\',\'qtrans_convertURL\');
无论如何,看看这里qtranslate slug plugin, 通常它可以省去很多麻烦。还有一张小纸条——如果我是你,我会更好地使用mqTranslate (基于qTranslate,但与WP的最新版本兼容)

SO网友:dazunE

我已经使用多个内容编辑器完成了自定义帖子类型的翻译,我使用了This Metabox Plugin 要添加元框,此插件允许您根据主题要求创建多个元框,要实现您的要求,请首先安装此插件Here is the link 然后在函数中添加如下代码。php或单独的文件,然后包含到函数中。php

global $meta_boxes;
$meta_boxes   = array();

$meta_boxes[] = array(

    \'id\' => \'standard\',
    \'title\' => __( \'Simple Editors\', \'your-languge-key\' ),
    \'pages\' => array( \'your-post-type\' ),
    \'context\' => \'normal\',
    \'priority\' => \'high\',
    \'autosave\' => true,
    \'fields\' => array(
        array(
                \'name\' => __( \'Simple Editor\', \'your-languge-key\' ),
                \'id\'   => "{$prefix}home-bottom-content",
                \'type\' => \'wysiwyg\',
                // Set the \'raw\' parameter to TRUE to prevent data being passed through wpautop() on save
                \'raw\'  => true,
                \'std\'  => __( \'WYSIWYG default value\', \'your-languge-key\' ),

                // Editor settings, see wp_editor() function: look4wp.com/wp_editor
                \'options\' => array(
                    \'textarea_rows\' => 4, 
                    \'teeny\'         => true,
                    \'media_buttons\' => false, // mediabuttons to editor
                ),
            ),
    ),

);
/**
 * Register meta boxes
 *
 * @return void
 */
function rw_register_meta_boxes()
{
    global $meta_boxes;

    // Make sure there\'s no errors when the plugin is deactivated or during upgrade
    if ( class_exists( \'RW_Meta_Box\' ) ) {
        foreach ( $meta_boxes as $meta_box ) {
            if ( isset( $meta_box[\'only_on\'] ) && ! rw_maybe_include( $meta_box[\'only_on\'] ) ) {
                continue;
            }

            new RW_Meta_Box( $meta_box );
        }
    }
}

add_action( \'admin_init\', \'rw_register_meta_boxes\' );

/**
 * Check if meta boxes is included
 *
 * @return bool
 */
function rw_maybe_include( $conditions ) {
    // Include in back-end only
    if ( ! defined( \'WP_ADMIN\' ) || ! WP_ADMIN ) {
        return false;
    }

    // Always include for ajax
    if ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) {
        return true;
    }

    if ( isset( $_GET[\'post\'] ) ) {
        $post_id = intval( $_GET[\'post\'] );
    }
    elseif ( isset( $_POST[\'post_ID\'] ) ) {
        $post_id = intval( $_POST[\'post_ID\'] );
    }
    else {
        $post_id = false;
    }

    $post_id = (int) $post_id;
    $post    = get_post( $post_id );

    foreach ( $conditions as $cond => $v ) {
        // Catch non-arrays too
        if ( ! is_array( $v ) ) {
            $v = array( $v );
        }

        switch ( $cond ) {
            case \'id\':
                if ( in_array( $post_id, $v ) ) {
                    return true;
                }
            break;
            case \'parent\':
                $post_parent = $post->post_parent;
                if ( in_array( $post_parent, $v ) ) {
                    return true;
                }
            break;
            case \'slug\':
                $post_slug = $post->post_name;
                if ( in_array( $post_slug, $v ) ) {
                    return true;
                }
            break;
            case \'category\': //post must be saved or published first
                $categories = get_the_category( $post->ID );
                $catslugs = array();
                foreach ( $categories as $category )
                {
                    array_push( $catslugs, $category->slug );
                }
                if ( array_intersect( $catslugs, $v ) )
                {
                    return true;
                }
            break;
            case \'template\':
                $template = get_post_meta( $post_id, \'_wp_page_template\', true );
                if ( in_array( $template, $v ) )
                {
                    return true;
                }
            break;
        }
    }

    // If no condition matched
    return false;
}
这里我只添加了一个编辑器,您可以通过重用编辑器字段来添加多个编辑器。希望这能解决你的问题。祝你好运

SO网友:shashank

已解决!

我使用了qranslate-x插件,它使我的自定义wp\\u编辑器可以在我的自定义帖子类型页面上进行翻译。

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在