私は大きな問題を抱えています。 Wordpressのページではog metaタグを生成する関数を使っています。ヘッド部にメタを生成したものを「追加」したい。だから、私はこのコードを書く:
add_action('wp_head', '_set_meta_tag');
function _set_meta_tag()
{
global $nome;
global $descr;
global $file;
global $path_meta;
$output = "";
$output .= '<meta property="og:title" content="'.$nome.'" />';
$output .= '<meta property="og:type" content="article" />';
$output .= '<meta property="og:image" content="'; $output .= get_bloginfo('template_url'); $output .= '/includes/img/immagini_evento/'.$file.'" />';
$output .= '<meta property="og:url" content="'.$path_meta.'" />';
$output .= '<meta property="og:description" content="'.truncate(htmlentities($descr),200).'" />';
$output .= '<meta property="og:site_name" content="'; $output .= get_bloginfo('name'); $output .='" />';
echo $output;}
add_action('wp_head', '_set_meta_tag');
は$output
を表示しません。どうして?
私はまた単純な「こんにちは世界」を反映することを証明したが、何も起こらなかった!
そのコードはwp_head
フックが起動する前に実行されなければ何も起こらないでしょう、そしてmu-pluginファイルでテストされるときそれは動作します。
おそらくほとんどの場合、 get_header
の後のテーマテンプレートファイル内から、この関数を手遅れにフックしようとしているのではないでしょうか。そのコードをテーマのfunctions.php
または(mu-)プラグインファイルに入れてください。少なくとも内容を反映している限りはうまくいきます。他のバグについては分析しませんでした。
私はこれと同じ問題を抱えていました。私は自分のフックを作ることで問題を解決しました。
これは私のheader.php
ファイルにあります。私のフックはwp_head()
の前に置かれています
<?php my_doc_head(); ?>
<?php wp_head(); ?>
</head>
このフックとフックに追加されたコールバック関数は私のfunction.php
で定義されています。
function my_doc_head() {
do_action('my_doc_head');
}
add_action('my_doc_head','my_seo_meta');
function my_seo_meta() {
global $wp_query;
$postid = $wp_query->post->ID;
//insert whatever code to build $output
echo $output;
wp_reset_query();
}