web-dev-qa-db-ja.com

Functions.phpで<head>アクセスに<meta>タグを追加します

私は自分が開発したカスタムテーマを持っています、そしてそれは基本的にクライアントのための4ページのパンフレットサイトです、そして私はカスタムポストタイプを組み入れて、グループなど.

セキュリティプラグインはサイトに残しておきますが、Yoastを削除したいのですが、サイトの最適化の程度を考慮して、それぞれにmetaタグとスニペットを追加できることが利点ですSEOの目的のためのページ。

私は自分のfunctions.phpファイルに追加することができます私はページIDを介して別のページに<meta>タグを追加することを可能にする機能はありますか?

1つのグーグルがこの主題を得るときあなたが得るのはプラグイン記事、または一般的なwpメタに関する情報だけです。

どんな助けでも素晴らしいでしょう。

ポール.

2
Paul12_

あなたが探しているフックは、具体的には 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のための賭けです。

5
Howdy_McGee

DIY SEO:

1:ページまたは投稿の投稿/ページエディタで、SEOメタタグに必要な値を指定してカスタムフィールド(メタデータ)を追加します。

  • 例えばページエディタで[契約条件]ページを開き、カスタムフィールド "my_noindex"に値 "y"を追加します。
  • N.B.カスタムフィールドボックスがエディタの下に表示されていない場合は、ページ上部の[表示オプション]ドロップダウンをクリックしてから、[カスタムフィールド]チェックボックスを表示します。

2:functions.php(または、より良いのはあなた自身のテーマに依存しないsite_functionsプラグイン):現在のページにこれらの値を取り、HTMLの<head>に挿入するSEO関数(wp_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);

Jeff Starrの あなた自身のSEOコードをロールすることに関する記事 (タイトルと説明を含む)がお手伝いします。コードはheader.phpに格納されるため、カスタム/子テーマが必要ですが、上記のmy_meta_tags関数用にコードの大部分を変更できます。それはあなたが望む方法でSEOを適用しないかもしれません、しかしそれはDIYの美しさです:あなたがカスタムフィールド(もしあれば)であなたの注意深く作られた説明を使いたいなら。それならあなたはそれに従ってコードを書くことができます。私はこの主題についての記事を書くつもりでもありました - もし私がそれに遭遇したら私はリンクを追加します。

記事のコードからの抜粋:

  • タイトルタグが重複しないようにする (一部のテーマは独自のものを挿入するため)あなたのサイトのfunctions.phpに以下を追加するとき、現代の、適切に設計されたテーマはあなたがテーマtitleタグを削除することを可能にするべきです。

    function my_remove_stuff() {
      remove_theme_support( 'title-tag' ); 
    }
    add_action('after_setup_theme', 'my_remove_stuff', 15);
    
  • 正規タグ 。上記の最初の関数に以下を追加してください。

    //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が衝突することはありません。

0
scytale