通过unctions.php将<meta>标记添加到<head>部分

时间:2018-02-02 作者:pjk_ok

我已经开发了一个自定义主题,它基本上是一个供客户使用的4页宣传册网站,我通过构建自定义帖子类型(gzip-via)成功删除了一些插件。htaccess和通过gulp等缩小。

我会在网站上保留安全插件,但我想删除Yoast,它带来的唯一好处是,考虑到网站的优化程度,它允许我添加meta 用于SEO目的的每个页面的标记和代码片段。

是否有一个函数可以添加到我的函数中。允许我添加的php文件<meta> 通过页面id标记到不同页面?

当一个人在谷歌上搜索这个主题时,你得到的只是插件文章,或者关于通用wp元的信息。

任何帮助都会很棒。

保罗。

2 个回复
SO网友:Howdy_McGee

你要找的钩子是wp_head 可能是这样的:

function theme_xyz_header_metadata() {

    // Post object if needed
    // global $post;

    // Page conditional if needed
    // if( is_page() ){}

  ?>

    <meta name="abc" content="xyz" />

  <?php

}
add_action( \'wp_head\', \'theme_xyz_header_metadata\' );
但我相信从长远来看,由于WordPress的便携性,Yoast SEO可能是SEO最可靠、最灵活的选择,而不是你自己做的事情,因此我个人建议不要这样做。

SO网友:scytale

DIY SEO:

1: 在页面或帖子的帖子/页面编辑器中:添加自定义字段(元数据),为SEO元标记添加所需值。

例如,在页面编辑器中打开并说出您的“条款和条件”页面,然后添加自定义字段my_noindex“值为“y”。

  • N.B.如果编辑器下方看不到自定义字段框,请单击页面顶部的“显示选项”下拉列表,然后单击出现的“自定义字段”复选框。
    • 2:在functions.php中(或更好的是在您自己的主题独立站点\\u函数插件中):添加您的SEO函数(由wp\\u head“调用”)它为当前页面获取这些值并将其插入HTML中<head>.

      // echo noindex tag if post or page has a "my_noindex" custom field with a value of "y"|"Y"|"yes" ...
      function my_meta_tags() {
         $noindex = (get_post_meta( get_queried_object_id(), \'my_noindex\', true ));
         if (strtolower(substr($noindex,0,1)) == \'y\') { 
           ?><meta name="robots" content="noindex" />
           <?php return; // noindex so no point in doing any other SEO stuff
         }
      
         // other SEO stuff
      
      }
      add_action( \'wp_head\', \'my_meta_tags\',2);
      
      杰夫·斯塔尔的article on rolling your own SEO code (包括标题和描述)将有所帮助。它需要一个自定义/子主题,因为它的代码位于标题中。然而,对于上面的my\\u meta\\u tags函数,大部分代码都可以修改。它可能不会以你想要的方式应用SEO,但这就是DIY的美妙之处:如果你想在自定义字段(如果存在)中使用你精心编制的描述,否则就使用你的自定义摘录,否则先使用n个字符的描述;然后您可以相应地编写代码。我还打算写一篇关于这个主题的文章——如果我有时间,我会添加一个链接。

      Omissions from article\'s code:

      • Prevent duplicate title tags (因为有些主题插入了自己的主题)。当您将以下内容添加到站点功能时,设计合理的现代主题应使您能够删除主题标题标记。php。

        function my_remove_stuff() {
          remove_theme_support( \'title-tag\' ); 
        }
        add_action(\'after_setup_theme\', \'my_remove_stuff\', 15);
        
      • Canonical Tags. 在上面的第一个函数中添加以下内容:

        //if post or page has a "my_canon" custom field
        $my_canon = get_post_meta( get_queried_object_id(), \'my_canon\', true );
        if ( ! empty($my_canon)) :
           echo \'<link rel="canonical" href="\' . $my_canon . \'" />\';
           remove_action(\'wp_head\', \'rel_canonical\'); // prevnts Wordpress inserting a canon tag - we don\'t want two
        endif;
        
      对于许多用户来说,SEO插件是正确的选择。然而,如果你乐于编写自己的代码,那么有很多好处:避免膨胀,避免锁定/依赖插件,避免(在某些情况下)支付支持费用,SEO按照你想要的方式工作;在您自己的动态自定义页面等上,SEO与SEO没有冲突问题。

    结束