【问题标题】:Wordpress where the "admin_url" is set?设置“admin_url”的WordPress?
【发布时间】:2010-04-06 12:19:22
【问题描述】:

基本上需要更改-admin_url()返回的值有什么想法吗?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    这个函数在wp-includes/link-template.php中定义,它提供了一个过滤器:

    /**
     * Retrieve the url to the admin area.
     *
     * @package WordPress
     * @since 2.6.0
     *
     * @param string $path Optional path relative to the admin url
     * @return string Admin url link with optional path appended
    */
    function admin_url($path = '') {
        $url = site_url('wp-admin/', 'admin');
    
        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
            $url .= ltrim($path, '/');
    
        return apply_filters('admin_url', $url, $path);
    }
    

    因此您可以在主题functions.php中使用自己的过滤功能控制输出:

    add_filter('admin_url', 'my_new_admin_url');
    
    function my_new_admin_url()
    {
        // Insert the new URL here:
        return 'http://example.org/boss/';
    }
    

    现在希望所有插件作者都使用这个功能,而不是硬编码路径……:)

    附录

    将此行添加到您的 .htaccess 中:

    Redirect permanent /wp-admin/ http://example.org/new_url/
    

    【讨论】:

    • 现在希望所有插件作者都使用这个功能,而不是硬编码路径
      我同意你的看法。但是当您需要向后兼容时,可以使用硬编码
    • 甚至 Wordpress 似乎也不尊重过滤器 - 如果您移动该文件夹,您将收到类似警告的错误:require_once(/public_html/wp-admin/includes/bookmark.php) [function.需要一次]:无法打开流:第 10 行的 /public_html/app-admin/includes/admin.php 中没有这样的文件或目录(就在核心 WP 文件夹中)
    • wp-admin 文件系统路径不应更改。但是,可以通过服务器配置指令或文件系统链接更改管理 URL 并将其映射到内部目录路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2013-09-21
    • 2015-12-05
    • 2016-03-22
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多