我正在尝试在functions.php
中为wordpress插入作者元,即Google adsense发布商ID和Adunit广告位号。我使用的代码将此metas显示为文本,例如xxxxxxxxxxxxxxxxxxx,即网页上同一行中的ID和插槽编号,并且不显示google adsense脚本/广告单元。
CODE
//RECTANGLE Adsense UNit
function get_rectangle() {
global $post; $author_id=$post->post_author;
if(is_single()) {
$rec_Ad.= '<div>';
$rec_Ad.= '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 300x250 -->
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"';
if (get_the_author_meta('rectangle', $author_id)) {
$rec_Ad.= 'data-ad-client="ca-pub-'.the_author_meta('pub-id', $author_id).'"';
$rec_Ad.= 'data-ad-slot="'.the_author_meta('rectangle', $author_id).'"></ins>';
} else {
$rec_Ad.= 'data-ad-client="ca-pub-xxxxxxxxxxxxxxx"';
$rec_Ad.= 'data-ad-slot="xxxxxxxxxxxxxxxxxx"></ins>';
}
$rec_Ad.= '<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>';
}
return $rec_Ad;
}
主要焦点
$rec_Ad.= 'data-ad-client="ca-pub-'.the_author_meta('pub-id', $author_id).'"';
$rec_Ad.= 'data-ad-slot="'.the_author_meta('rectangle', $author_id).'"></ins>';
代码应显示在single.php page
中,作者的广告单元(如果存在)则显示默认广告单元。
答案 0 :(得分:0)
该解决方案可在以下链接中找到。 How Can I return adsense code from a function in wordpress 归功于@Quack。
更改
$rec_Ad.= 'data-ad-client="ca-pub-'.the_author_meta('pub-id', $author_id).'"';
$rec_Ad.= 'data-ad-slot="'.the_author_meta('rectangle', $author_id).'"></ins>';
到
$rec_Ad .= 'data-ad-client="ca-pub-'. get_the_author_meta('pub-id', $author_id) .'"';
$rec_Ad .= 'data-ad-slot="'. get_the_author_meta('rectangle', $author_id) .'"></ins>';
}
USE get_the_author_meta
和 NOT the_author_meta