管理规范标签的目的是什么?

时间:2018-05-13 作者:Binar Web

我在谷歌上搜索过WordPress developer resources, 但什么都没发生。

我理解rel="canonical" 标记在网站的前端(这是网站SEO的一部分),但我无法理解它在WordPress管理区域(后端)的用途。

本地WordPress安装示例:

<link id="wp-admin-canonical" rel="canonical" href="http://localhost/wordpress/wp-admin/plugins.php" />
他们在WordPress管理领域的目的是什么?

3 个回复
最合适的回答,由SO网友:Fayaz 整理而成

什么是前端&;WordPress中的后端是什么

在服务器上执行的PHP代码、SQL查询等是backend &;因此,任何进入浏览器的HTML/CSS/JavaScript代码都是frontend.

尽管如此,你网站的某些部分"frontend" 可能受到密码保护屏障的限制,它仍被视为前端。如果你叫它更准确WordPress Admin Panel, 而不是将其称为后端。

为什么WordPress管理面板页面需要rel="canonical"?

除非用于very very rare 在您可能公开管理页面的用例中,它不会给SEO带来任何好处。然而rel="canonical" 仍然可以使用(即使是管理面板页面):As part of the standard practice.

对于网页,rel="canonical" 指:

被识别为具有非常相似或相同内容的不同页面集合的转到URL的网页URL。

由于这是标准做法,即使你没有从中获得任何SEO好处,这仍然是正确的做法。

它来自哪里:添加了WordPresswp_admin_canonical_url() WordPress 4.2中的函数。rel="canonical" 零件从一开始就存在&;WordPress开发人员从那时起就没有理由删除它。

最初的更改来自标题为:Remove message parameters from admin URl\'s in the browser address bar. 如果你仔细讨论一下,你会发现rel=canonical 部分作为标准实践的一部分添加,nothing more.

检查comment 原始开发商:

  1. rel=canonical 是一种标准做法,我认为这是一种很好的使用方法<link id="wp-admin-canonical" /> 标签

如上所述,rel=canonical 部分<link> 标签仅用于标准实践,然而<link> 标签:

<link id="wp-admin-canonical" rel="canonical" href="__URL__" />
它本身就是功能性的。添加它是为了保留URL&;浏览器历史记录清除自single-use query variable names.

例如,如果您激活一个插件,在管理面板的顶部,它会给您一条如下消息:

插件已激活。

然后,假设您关闭了浏览器&;稍后再打开它(或只是刷新页面)。此时,在WordPress 4.2之前(如果浏览器设置为打开上次打开的选项卡),页面仍会显示:

插件已激活

尽管这次什么都没发生。使用“浏览器后退”按钮时也会出现同样的情况(因为显示的消息也是对浏览器历史记录中的一次性URL参数的响应)。

之所以会出现这种情况,是因为WordPress会将您重定向到如下URL:

http://example.com/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=
激活插件后。请注意activate=true URL中的查询字符串。这只是为了向你展示”Plugin activated“消息。因此,在”Plugin activated“消息已传递给您。

这就是为什么,在WordPress 4.2中wp_admin_canonical_url() 引入了函数,其中<link id="wp-admin-canonical" /> 标记保留对URL规范版本的引用,而不包含single-use query variable 第三部分;然后,函数中的JavaScript代码将替换浏览器历史记录条目中的JavaScript代码。

截至撰写本文时,共有23个single-use query variables 可以从中的规范URL中删除wp_removable_query_args() 功能:

\'activate\', \'activated\', \'approved\', \'deactivate\', \'deleted\',
\'disabled\', \'enabled\', \'error\', \'hotkeys_highlight_first\', 
\'hotkeys_highlight_last\', \'locked\', \'message\', \'same\', \'saved\',
\'settings-updated\', \'skipped\', \'spammed\', \'trashed\', \'unspammed\', 
\'untrashed\', \'update\', \'updated\', \'wp-post-new-reload\'
但是,可以使用removable_query_args 过滤器挂钩。

SO网友:Shibi

Wordpress在管理中使用此选项可以从url中删除一些查询参数。

其由函数生成wp_admin_canonical_url()

function wp_admin_canonical_url() {
    $removable_query_args = wp_removable_query_args();

    if ( empty( $removable_query_args ) ) {
        return;
    }

    // Ensure we\'re using an absolute URL.
    $current_url  = set_url_scheme( \'http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] );
    $filtered_url = remove_query_arg( $removable_query_args, $current_url );
    ?>
    <link id="wp-admin-canonical" rel="canonical" href="<?php echo esc_url( $filtered_url ); ?>" />
    <script>
        if ( window.history.replaceState ) {
            window.history.replaceState( null, null, document.getElementById( \'wp-admin-canonical\' ).href + window.location.hash );
        }
    </script>
<?php
}
Thewp_removable_query_args() 返回一个包含查询参数的数组,例如,我们要删除默认参数。

$removable_query_args = array(
    \'activate\',
    \'activated\',
    \'approved\',
    \'deactivate\',
    \'deleted\',
    \'disabled\',
    \'enabled\',
    \'error\',
    \'hotkeys_highlight_first\',
    \'hotkeys_highlight_last\',
    \'locked\',
    \'message\',
    \'same\',
    \'saved\',
    \'settings-updated\',
    \'skipped\',
    \'spammed\',
    \'trashed\',
    \'unspammed\',
    \'untrashed\',
    \'update\',
    \'updated\',
    \'wp-post-new-reload\',
);
例如,如果我们编辑一些帖子,url是http://example.com/wp-admin/post.php?post=32&action=edit

保存帖子时,我们将url更改为/wp-admin/post.php?post=32&action=edit&message=1 但是使用JS,我们可以使用window.history.replaceState 并移除message 查询参数。

然后,如果我们更改url并单击“上一步”,我们将返回到存储的url,而不是带有message.

我们不会看到这样的信息:Post updated. View post 再一次

可以通过创建新帖子来测试,您可以看到消息,然后转到主页并单击“上一步”。并确保您不会看到该消息,因为我们的浏览器历史记录url已更改为没有消息查询参数。

So why use the rel="canonical"?

据我所知,wordpress核心没有真正的用途,除了semantics 使用此标记。此标记旨在告诉我们,某个url与另一个url重复。

但由于其他爬虫使用此标记作为检查重复的选项,我们可以出于某种目的在管理区域构建自己的爬虫,我们可以使用此标记。

SO网友:Cedric

没有有效的理由在后端有一个(aka admin)。唯一的一个是rel_canonical 在里面wp-includes/link-template.php 从中的操作添加default-filters.php 文件始终处于激活状态,无论它是前端还是后端。

由于这种行为对社区来说似乎不是问题,所以没有改变:开发Wordpress的开发人员会花时间更好地改进一些重要的东西,而不是那些不会给Wordpress带来任何价值的东西。

结束

相关推荐

在子目录中创建网站副本,wp-admin重定向问题

我在根文件夹中安装了Wordpress站点。那么我有一个test 子目录,我想在其中复制我的网站。我确实将所有文件从我的主网站复制并移动到了测试目录。我已经创建了一个新数据库,一个新用户,将数据库从主网站导入到新数据库中,并且我已经更改了wp\\u配置。测试目录中的php文件,以使用该新数据库。一切似乎都很好,但当我开始:mainwebsite.com/test/wp-admin 我尝试登录,它就挂在那里,我按下access,没有收到任何错误或任何东西,密码字段只是重置,但我没有重定向,所以我无法保存永久