有条件地在标题中写入开放图元属性

时间:2014-02-10 作者:Doug B.

我有一个功能,可以在每个页面的标题中打印打开的图形标签。我还有一个插件,可以发布到Facebook上,该插件还包含自己的一组基本OG标签。Facebook不喜欢一个页面包含多个og:url标记。该插件只在单个页面上工作,所以我不想在单个贴子页面上打印我的og:url标记。我想测试is\\u home和is\\u标记,如果这些是真的,函数将打印og:url标记。另一个问题是主页的url与标记页完全不同。我试着在meta标签中做条件标记,但如果og:url行存在,Facebook会呕吐。

以下是我当前拥有的代码,除了og:url标记的条件外,其他所有代码都正常工作:

    function wpc_fb_opengraph() {
$wpc_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(),     \'large\');
?>
<?php echo "\\n<!-- Start of OG Tags from DougTheme 2013 -->\\n"; ?>
<meta property="og:image" content="<?php if (function_exists(\'catch_that_image\')) {echo catch_that_image(); }?>" />
<meta property="fb:admins" content="XXXXX"/>
<meta property="fb:app_id" content="XXXXXXXXXX">
<meta property="og:site_name" content="<?php bloginfo(\'name\'); ?>" />
<meta property="og:description" content="<?php if ( is_singular() ) { echo strip_tags(get_the_excerpt()); } else { echo "comments about everything"; } ?>" />
<meta property="og:title" content="<?php if ( is_singular()) { echo esc_attr( get_the_title() ); } elseif (function_exists(\'is_tag\') && is_tag()) {single_tag_title(\'Tag Archive for &quot;\'); echo \'&quot; - \'; echo get_bloginfo(\'name\');} else { echo get_bloginfo(\'name\'); } ?>">
<meta property="og:type" content="<?php if ( is_singular() ) { echo "article"; } else { echo "website";} ?>">
        if (is_home()) {
        <meta property="og:url" content="<?php bloginfo(\'url\'); ?>" />
<?php } //end if home

elseif ( is_tag() ) {
    <meta property="og:url" content="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];  ?>">
<?php }      


<?php echo "\\n<!-- End of OG Tags from DougTheme 2013 -->\\n"; ?>
<?php }

add_action(\'wp_head\', \'wpc_fb_opengraph\');
我在页面的任何一行测试中都遇到语法错误。我被难住了。

2 个回复
最合适的回答,由SO网友:user2459489 整理而成

据我所知,您需要帮助构建if逻辑?而且php标记的使用看起来也不正确。

这有帮助吗-

<?php 
if(!is_single()){
    if(is_home() || is_front_page()){ // not sure if you have set a static page as your front page
        echo \'<meta property="og:url" content="\'.bloginfo(\'url\'); .\'" />\';
    }elseif(is_tag()){
        echo \'<meta property="og:url" content="\'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; .\'">\';
        }
}
?>
================这是完整的代码========================

    function wpc_fb_opengraph() {
$wpc_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(),     \'large\');
?>
<?php echo "\\n<!-- Start of OG Tags from DougTheme 2013 -->\\n"; ?>
<meta property="og:image" content="<?php if (function_exists(\'catch_that_image\')) {echo catch_that_image(); }?>" />
<meta property="fb:admins" content="XXXXX"/>
<meta property="fb:app_id" content="XXXXXXXXXX">
<meta property="og:site_name" content="<?php bloginfo(\'name\'); ?>" />
<meta property="og:description" content="<?php if ( is_singular() ) { echo strip_tags(get_the_excerpt()); } else { echo "comments about everything"; } ?>" />
<meta property="og:title" content="<?php if ( is_singular()) { echo esc_attr( get_the_title() ); } elseif (function_exists(\'is_tag\') && is_tag()) {single_tag_title(\'Tag Archive for &quot;\'); echo \'&quot; - \'; echo get_bloginfo(\'name\');} else { echo get_bloginfo(\'name\'); } ?>">
<meta property="og:type" content="<?php if ( is_singular() ) { echo "article"; } else { echo "website";} ?>">
if(!is_single()){
    if(is_home() || is_front_page()){ // not sure if you have set a static page as your front page
        echo \'<meta property="og:url" content="\'.bloginfo(\'url\'); .\'" />\';
    }elseif(is_tag()){
        echo \'<meta property="og:url" content="\'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; .\'">\';
        }
}    

<?php echo "\\n<!-- End of OG Tags from DougTheme 2013 -->\\n"; ?>
<?php }    

add_action(\'wp_head\', \'wpc_fb_opengraph\');

SO网友:Doug B.

下面是解决我的问题的正确代码。

    <?php if(!is_single()){
if(is_home() || is_front_page()){ // not sure if you have set a static page as your front page
    echo \'<meta property="og:url" content="\'.get_bloginfo(\'url\').\'" />\';
}elseif(is_tag()){
    echo \'<meta property="og:url" content="http://\'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"].\' ">\';
    }
}?>

我将这个块添加到我的函数中,它完成了我需要它做的事情——根据它是主页还是标记页来编写页面的url。

最后一个问题是echo语句中的数据出现语法错误,所以我使用PHP代码检查器来解决这些问题。

结束

相关推荐

Facebook共享者和URL中的参数

所以在经历了很多麻烦之后this answer) 我设法使GET参数在URL中看起来更好www.url.com/mypage/?id=123 到www.url.com/mypage/123/我希望这能解决Facebook sharer的重定向问题,但事实并非如此。Facebook仍然将我的共享url识别为www.url.com/mypage/这怎么可能呢?通过研究Wordpress的重写规则,我了解到当我键入(link1)时www.url.com/nameofpage/ 事实上,我被重定向到(link2)