挂钩添加新帖子链接wp admin?

时间:2013-07-16 06:51:53

标签: php wordpress multilingual

如何自定义添加新帖子链接,或者如何添加自定义参数以添加新帖子链接,例如 http://www.test.localhost/wp-admin/post-new.php ,如下所示 http://www.test/wp-admin/post-new.php?lang=fr

我已通过

自定义菜单中的链接
global $menu, $submenu;
$submenu['edit.php'][10][2]='post-new.php?lang='.ICL_LANGUAGE_CODE;

但我想挂钩管理面板中出现的所有链接(post-new.php?lang='')

3 个答案:

答案 0 :(得分:1)

这是不可能的。对此没有任何吸引力。这些都是核心文件中出现的post-new.php

enter image description here

正如你所看到的那样,没有模式,也没有共同点和钩子。您需要详细列出要更改链接的位置,然后继续执行任何目标,global $submenu,jQuery等。

答案 1 :(得分:0)

你想考虑一些丑陋的工作吗?

jQuery(document).ready( function (){
    jQuery('a').each( function (){

            //first check that a is pointing towards the link you required
            var pattern = /post\-new\.php/;

            // check that it isn't already containing what you are looking for
            var patternLang = /lang\=fr/;

            // before adding query string make it sure that you would need to append using '?' or '&'
            var patternQString = /\.php\?/;

            var href = jQuery(this).attr('href');

            if(pattern.test(href)){
                    if(!patternLang.test(href)){
                        if(patternQString.test(href)) $(this).attr('href', href + '&lang=fr' );
                        else $(this).attr('href', href + '?lang=fr' );
                    }
            }
    });
});

答案 2 :(得分:0)

这可以通过使用admin_url过滤器来实现:

function add_new_post_url( $url, $path, $blog_id ) {

    if ( $path == "post-new.php" ) {
        $path = "post-new.php?lang=" . ICL_LANGUAGE_CODE;
    }

    return $path;
}
add_filter( 'admin_url', 'add_new_post_url', 10, 3 );