你在这里缺少了一些部分来完成这项工作
您需要设置全局$post
在您的功能中
如果不设置postdata,则无法直接使用模板标记
您需要将帖子ID添加到get_permalink()
你有很多语法错误。比较我的代码和你的代码
您可以尝试以下操作:(警告:未测试)
function add_twitter_cards()
{
global $post;
if(is_singular( \'shops\' )) {
setup_postdata($post);
$tc_url = get_permalink($post->ID);
$tc_title = get_the_title();
$tc_description = get_the_excerpt();
$tc_image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\' );
$tc_image_thumb = $tc_image[0];
?>
<meta name="twitter:card" value="product" />
<meta name="twitter:site" value="@mytwitter" />
<meta name="twitter:title" value="<?php echo $tc_title; ?>" />
<meta name="twitter:description" value="<?php echo $tc_description; ?>" />
<meta name="twitter:url" value="<?php echo $tc_url; ?>" />
<?php if($tc_image) { ?>
<meta name="twitter:image" value="<?php echo $tc_image_thumb; ?>" />
<?php } if($tc_author) { ?>
<meta name="twitter:creator" value="<?php echo $twitter; ?>" />
<meta name="twitter:label1" value="Total Sales" />
<meta name="twitter:data1" value="<?php echo $totalsales; ?> <?php _e(\'of\', \'sales\'); ?> <?php echo $totalsales; ?>" />
<meta name="twitter:label2" value="Amount Earned" />
<meta name="twitter:data2" value="<?php echo countAmountForAll($post->ID); ?>" />
<?
}
wp_reset_postdata();
}
}