如何在不使用插件的情况下将模式标记添加到单个WordPress帖子中?

时间:2020-01-06 作者:Shitsumon

我不是一个网络开发人员,也不是一个技术性很强的人,所以如果下面的任何信息没有多大意义,我很抱歉。

我当前正在尝试为网站上的文章添加架构标记。

我使用Google的标记助手为一篇文章生成代码,并将其插入WordPress主题标题的部分。php文件。我使用Google的标记测试工具验证了标记,标记测试结果返回有效,但缺少标题。

我关心的是是否要将模式标记代码添加到主题的标题中。每次我发布一篇新文章时,php文件都会包含太多的数据吗?(我的网站上有大约40篇文章,将添加更多)。我的印象是,如果有太多的代码或文本在那里,它可能最终会影响我的网站在速度方面的性能(如果我误解了,请纠正我)。

由于上述担忧,我正试图找到一种将模式标记添加到各个帖子的方法,但如果可能的话,不使用任何插件。我的问题是我不知道怎么做,因为我个人帖子的HTML代码中没有可以插入标记代码的地方。(个别帖子的内容前只有此代码“”)。

有没有人能教我如何绕过这个问题,或者是否有任何特定的代码模板可以用来将模式标记代码添加到各个WordPress帖子中?

非常感谢。(很抱歉发了这么长的帖子。我只是想为我的问题提供更多的背景)

更新#2-我在单曲中看到的代码。php文件:

<?php
get\\u header();?>

<div id="primary" class="full-featured-content-small content-area">
    <main id="main" class="site-main">

    <?php
    while ( have_posts() ) : the_post();

        get_template_part( \'template-parts/content\', \'single\' );

        if ( get_theme_mod(\'amazorize_post_navigation_options\', \'navigation_enable\') == \'navigation_enable\' ) :
            the_post_navigation();
        endif;

        if ( get_theme_mod(\'amazorize_related_post_options\', \'related_post_enable\') == \'related_post_enable\' ) :
            amazorize_related_posts();
        endif;

        // If comments are open or we have at least one comment, load up the comment template.
        if ( comments_open() || get_comments_number() ) :
            comments_template();
        endif;

    endwhile; // End of the loop.
    ?>

    </main><!-- #main -->
</div><!-- #primary -->

1 个回复
SO网友:WebElaine

如果希望在每个帖子中包含相同类型的模式信息,可以通过创建子主题来实现。

(与直接编辑主题不同,您可以创建一个引用父主题的style.css文件,并将需要修改的文件复制到该子主题中。这样,当您更新父主题时,您的自定义设置不会丢失。)

要使用哪个模式、要在其中包含哪些信息以及要使用的主题都将决定详细信息的包含方式和位置。下面是一个需要添加的基本示例“Article“您的帖子的架构。

风格css

/*
Theme Name: Schema Test
Template: twentytwenty
*/
你的风格。css文件可能非常基本。主题名称将告诉WordPress“嘿,这是一个用户可以激活的主题”,模板引用父主题,以便WP知道引用哪个父主题。您需要将模板更改为您正在使用的任何主题的文件夹。在这里,父级是“Twenty-Twenty”主题,我们用“Twenty-Twenty”来引用它,因为这就是包含该主题的文件夹的名称。根据需要进行调整。将此文件上载到/wp-content/themes/schema-test/。瞧,你有一个可以激活的子主题-虽然你不会注意到有什么不同,因为你实际上还没有覆盖任何内容。

接下来,您需要确定哪些父主题文件包含要更改(或添加到)的代码。每个主题都有点不同,不过通常您会发现帖子是在“single.php”文件中处理的。因此,将“single.php”文件从父主题复制到“schema test”文件夹中,然后对其进行编辑。

假设您的文件当前如下所示:

<?php get_header(); ?>
<main>
    <?php if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            the_content();
        endwhile;
    endif; ?>
</main>
<?php get_footer(); ?>
要使这篇文章成为一篇文章,您需要识别包装内容的HTML元素。在这种情况下,有一个<;主(>);内容周围的元素。(在许多主题中,还有一个侧边栏,您可能希望排除它,因此您的主题中可能有一个内部div或更具体的内容。)

您只需为所需架构添加itemscope itemtype代码:

现在您有了一篇架构文章。接下来,您需要确定可用的信息,例如标题、作者等。这也是非常特定于主题的,因为有些主题可能会在<;主(>);元素,而其他元素可能将其包含在“header.php”中。因此,您必须始终确定一个包含所有要标记的数据的HTML元素,这有时意味着添加您自己的HTML元素,例如<;div>;,可能跨越多个文件。而且,当您编辑诸如“header.php”之类的文件时,请记住所有内容类型都使用该文件,因此如果您只想标记您的帖子,则需要添加条件,例如

<?php if is_singular(\'post\') {
// add schema
} ?>

相关推荐

初学者问题:通过管理Web界面访问Functions.php以导入自定义帖子类型?

是否可以访问这些功能。php文件仅仅使用管理web界面?我正在尝试访问以前创建的(手动编码的)自定义帖子类型,我不得不跳过很多障碍,因为我无法访问函数中的代码。php文件。我已经浏览了很多帮助页面,但建议的步骤似乎总是涉及到函数。php文件(我无法访问)或使用插件中的导入/导出工具,该插件首先创建了自定义帖子类型(据我所知,没有使用任何插件)。这似乎是一个非常基本的问题,但我一辈子都想不出来。任何帮助都将不胜感激!