我可以使用什么函数来自动输出每个页面/帖子的og标签?

时间:2021-01-09 作者:joseph

问题:我对WhatsApp和Telegram上的链接社交预览有问题。社交预览会出现在桌面和其他平台上,Facebook调试工具也会显示完整的信息,但在WhatsApp和Telegram手机上没有显示任何内容。我做了研究并测试了不同的东西,最后发现WhatsApp和Telegram不喜欢在<head>. 我把他们拉近了,这几乎奏效了,但并不完全奏效。

现在,它不显示缩略图;更糟糕的是,它为我的所有页面显示相同的标签。例如,我在WhatsApp上共享一篇帖子的链接,但输出的og标签属于我的主页,无论我共享哪个页面或帖子,它都显示相同的og标签。

现在,我几乎知道问题是什么了,我想检验我的下一个假设,看看它是否有效。

我正在考虑创建如下自定义函数:

我在里面创建了一个函数functions.php 并在其中包含所有og标记。然后,输入一行代码“;例如“QUOTE;”;,<?(get_og_tags);?> 内部<head>. 就在开场白之后,我希望它能起作用。

我的第一个问题:

1-这是一个好的决定吗
2-如果是,您能帮助我完成此功能吗?

我希望解决这个问题,我没有坚持用函数来解决它。使用函数正是我想到的。如果你能帮助我解决你所知道的任何问题,我将不胜感激。

1 个回复
SO网友:Q Studio

以下是如何为Facebook添加一些OG标签的示例:

在上创建函数的挂钩wp_head 行动

// if on a single post screen, generate and insert facebook:OG tags. ##
add_action( \'wp_head\', \'wpse381199_og_tags\', 12 );     
然后创建一个函数来生成OG标记

    function wpse381199_og_tags(){
        
        // get the current post object ##
        $the_post   = get_post();

        // bulk if no post 
        if ( ! $the_post ){ return false; }

        // check we are on a single post or page, if not bulk ##
        if ( 
            ! \\is_single()
            && ! \\is_page()
        ) { 
        
            return false; 
        
        }

        // get all the data we need. ##
        $array = [];
        $array[\'title\'] = $the_post->post_title;


        // add all other tag elements you want to array here and add a new tag for each value in the HTML below.

?>
        <meta property="og:title" content="<?php echo ( \\esc_html( $array[\'title\'] ) ); ?>" />
<?

    }

相关推荐

Functions.php上未定义$_GET和&_REQUEST索引

我最近尝试学习为我的自定义主题创建一个主题选项页面,这是按照stackoverflow和其他资源的教程进行的。但脚本显示错误if ($_GET[\'page\'] == basename(__FILE__)) { if (\'save\' == $_REQUEST[\'formaction\']) { foreach ($options as $value) { if( isset( $_REQUEST[ $value[\'id\']