重命名媒体上载窗口中的插入按钮

时间:2011-08-22 作者:schizdazzle

我有几个不同的帖子类型,每个都有媒体上传。我想做的是重命名“插入帖子”按钮,使其与各个自定义帖子相关。例如-custom post type-“award”,然后媒体上载框会有以下按钮,“insert into award”。

有什么想法吗?

2 个回复
SO网友:bueltge

我认为,这并不是那么容易做到的,在管理区的媒体页面上是不可能检查您的CPT的post\\U类型的。例如,通常可以使用follow小源更改字符串。

if ( is_admin() )
    add_filter( \'gettext\', array( \'fb_string_translate\', \'gettext_filter\' ), 10, 1 );
class fb_string_translate {

    static function gettext_filter( $str ) {

        $from_to = array();

        $post_type = get_post_type();
        if ( \'my_post_type\' === $post_type )
            $from_to = array( \'Insert into Post\' => \'Insert into Test\' );

        return strtr($str, $from_to);
    }

}
但重要的是,您要检查,在哪个页面上是admin中的作者,在媒体页面的iframe上,无法读取post\\u类型;也许您找到了这个var,然后就可以使用示例源了。

SO网友:brasofilo

[update]<一开始我采取了一种愚蠢的方法,因此我正在完全重写我的答案Stephen Harris\' post. 结果:现在更紧凑了。

我试图将@bueltge的过滤器改编成我的代码,但没有成功。

我的解决方案使用jQuery操作字符串
在“来自计算机”选项卡中,我添加了一个每半秒运行一次的功能,以便在按钮文本出现时(上传后)更改按钮文本。

本例涉及两个CPT:“movie”和“woo\\u estate”。

/*
 * Change the text "Use this Image"/"Insert into Post" on the upload window to "Insert into CPT"
*/
function wpse_26585_script_enqueuer(){
    global $current_screen;
    $post_id = !empty( $_GET[\'post_id\'] ) ? (int) $_GET[\'post_id\'] : 0;
    $post_type = get_post_type($post_id);

    if( \'media-upload\' == $current_screen->id && (\'movie\' == $post_type || \'woo_estate\' == $post_type) ) {

        // VAR DECLARATION
        $select = "";
        if(\'movie\' == $post_type)       $select = "Insert into Movie";
        if(\'woo_estate\' == $post_type)  $select = "Insert into Property";

        // FIND CURRENT TAB
        $tab     = isset($_GET[\'tab\']) ? $_GET[\'tab\'] : "type";

        // CHANGE NAMES IN UPLOAD MEDIA TAB and UPDATE "SAVE ALL CHANGES" LINK TO INCLUDE OUR PARAMETER IN THE QUERY
        $jquery = (\'type\' == $tab) ? \'var refreshUpload = setInterval(function(){$("#media-items").each(setButtonNames);},500);\' : \'$("#media-items").each(setButtonNames);\';

        //CHANGE BUTTON NAMES
        echo <<<HTML
        <script type="text/javascript">
        function setButtonNames() {
            jQuery(this).find(\'.savesend .button\').val(\'{$select}\');
        }
        jQuery(document).ready(function($){            
            {$jquery}
        });
        </script>
HTML;
    }
}
add_action(\'admin_head\', \'wpse_26585_script_enqueuer\');

结束

相关推荐

404从wp-Content/Uploads/获取图像时

我在获取图像时获得404状态,http仍然包含该图像。图像显示在浏览器中,但404代码中断了一些应用程序。对wp内容/上载/的调用被重定向到。htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteRule (.*) /index.php?getfile=$1 [L] </IfModule>&