如何修改所有页面上的<Header>元素?

时间:2017-06-23 作者:cag8f

修改<header> 所有页面上的元素?我需要编辑<header> 每个页面上的元素来自:

<header class="light">

<header class="light" itemscope="itemscope" itemtype="http://schema.org/WPHeader">
我想让它读一下,有没有办法通过自定义函数来实现这一点?我知道我可以直接编辑my header.php 文件,但我想避免这样。

也许有一个WordPress过滤器挂钩可以修改我网站每个页面的元素?我查看了WP list of filter hooks, 但没有发现任何与本案相关的信息。不过我可能错过了。

此任务的目标是以微数据格式向我的站点添加模式数据(按照this page). 如果有更简单/更好的方法,我很想听听。过去,我使用Google标记管理器以JSON格式添加了模式数据。但在这种情况下,我已经准备好了一个JSON-LD文件。在这种情况下,我不知道如何准备那个文件。

2 个回复
SO网友:cjbj

这个<header> 元素通常直接与主题相呼应。因此,无需任何挂钩或过滤器来更换它们。在这种情况下,无法使用函数更改这些元素。检查主题。

当然,您可以使用javascript来放置属性,但这将发生在用户端。搜索引擎不会看到它。自架构。组织属性是指搜索引擎,这是非常无用的。

你可以尝试的是buffering the whole page 并在页面完成之前进行搜索和替换。这可能会让你遇到严重的困难,但理论上是可能的。

因此,您最好的做法是构建一个儿童主题,并替换<header> 标记是随您的版本生成的。如果按照您的建议进行自定义函数的方向,那么您无论如何都必须创建一个子主题。

SO网友:Por

我不确定wordpress中是否有这种过滤器。但是,您可以通过javascript来实现。此外,如果您想对特定数据进行条件检查。您可以在函数中运行。php文件。

function schema_filter() {

//write your condition  in here and pass variable to javascript with php code like that

    ?>
    <script>

        jQuery(document).ready(function($){
            $(\'header\').attr(\'itemscope\', \'itemscope\');
            $(\'header\').attr(\'itemtype\', \'http://schema.org/WPHeader\');
        });

    </script>
    <?php
}
add_action(\'wp_footer\', \'schema_filter\');

结束