source

Wordpress PHP에서 메타 태그를 사용하는 동적 페이스북

manysource 2023. 3. 31. 22:29

Wordpress PHP에서 메타 태그를 사용하는 동적 페이스북

동적 페이스북 메타데이터 태그를 워드프레스 사이트에 추가하려고 합니다.싱글에 추가할 거예요.php는 일반적으로 권장되는 함수 대신 사용됩니다.php 파일은 내가 만든 Facebook 앱용 코드를 가지고 있기 때문에 누군가가 개별 블로그 투고를 볼 때마다 실행해야 합니다.그 후, 그 특정 투고를 읽었다는 것을 Facebook 타임라인에 투고하기 때문입니다.플러그인이 서로 경합하는 경우가 있어서 문제 해결이 어려웠기 때문에 플러그인은 사용하고 싶지 않습니다.나의 가장 큰 문제는 내가 필요한 것은og:url태그가 다이내믹하게 되어 있지만,og:title,og:description,og:image, 등도 마찬가지입니다.single.php 파일의 맨 위에 있는 코드는 다음과 같습니다.

편집: 현재 사용하고 있는 작업 코드는 다음과 같습니다.여러분의 도움에 감사드립니다.

    <?php

$params = array();
if(count($_GET) > 0) {
    $params = $_GET;
} else {
    $params = $_POST;
}
// defaults
if($params['type'] == "") $params['type'] = "picture";
if($params['locale'] == "") $params['locale'] = "en_US";
if($params['description'] == "") $params['description'] = "Visit Internet LOLs for the funniest humor on the web! :)";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# internetlolsapp: http://ogp.me/ns/fb/internetlolsapp#">
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

        <!-- Open Graph meta tags -->
        <meta property="fb:app_id" content="378076268920252" />
        <meta property="og:site_name" content="meta site name"/>
        <meta property="og:url" content="<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>"/>
        <meta property="og:type" content="internetlolsapp:<?php echo $params['type']; ?>"/>

        <meta property="og:description" content="<?php echo $params['description']; ?>"/>

    </head>
</html>

  <script type="text/javascript">
  function postView()
  {
      FB.api(
        '/me/internetlolsapp:view',
        'post',
        { picture: '<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>' },
        function(response) {
       if (!response) {
          // FAIL GRACEFULLY alert('Error occurred : No Response');
       } else if (response.error) {
          // FAIL GRACEFULLY alert('Error occurred : ' + response.error);
       } else {
          // SUCCESS alert('View was successful! Action ID: ' + response.id);
       }
        });
  }
  </script>
</head>
<body>
  <div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '378076268920252', // App ID
        status     : true, // check login status
        cookie     : true, // enable cookies to allow the server to access the session
        xfbml      : true  // parse XFBML
      });
    };

    // Load the SDK Asynchronously
    (function(d){
      var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
      js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js";
      d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
  </script>



</body>

<body onload='postView()'>
</html>

저는 여기에 있는 코드를 따르려고 합니다.Facebook Open Graph 메타 태그를 동적으로 생성하여 블로그 투고를 읽을 때마다 Facebook 타임라인에 투고합니다.단, 제목에 대해서는 "기본 제목"을 붙이고 Facebook 타임라인에서 "기본 제목" 링크를 클릭하면 싱글용 URL로 전송됩니다.php (URL 끝에 터무니없는 말들이 많이 있음)

http://MYSITE.com/wp-content/themes/twentyeleven/single.php?fb_action_ids=10151048340001514&fb_action_types=internetlolsapp%3Aview&fb_source=other_multiline

블로그 투고 URL이 아니라 FB.api 뒤에 세 번째 줄에 입력한 URL과 관계가 있는지 궁금한데, 그 밖에 제가 블로그 투고를 읽었을 때 앱이 페이스북 타임라인에 전혀 게시되지 않습니다.

어떻게 고칠지 생각나는 거 없어?이걸로 며칠째 머리를 뽑고 있어요.어떤 도움이라도 주시면 감사하겠습니다!잘 부탁드립니다.

Ryan S의 기능을 사용하고 있습니다.카울이 이걸 하는데 완벽하게 작동한다.wp_head hook을 사용하여 데이터를 동적으로 삽입하여 모든 페이지가 OG 메타 정보를 동적으로 로드합니다.FB 상태 상자에서 페이지 링크 중 하나를 사용할 때마다 해당 페이지에 대한 정보가 호출됩니다.모든 페이지에서 Featured Images를 사용하지만 사용하지 않으면 기본 폴백으로 쉽게 쓸 수 있습니다.

함수 파일에 다음과 같은 내용이 있습니다.

/*
Plugin Name: Facebook Featured Image and Open Graph Meta Tags
Version: 1.0
Plugin URI: http://www.ryanscowles.com
Description: Automatically set the posts' Featured Image as the thumbnail and set appropriate Open Graph meta tags for sharing on Facebook.
Author: Ryan S. Cowles
Author URI: http://www.ryanscowles.com
*/

define ('pluginDirName', 'fb-featured-image');
// Allow for Facebooks's markup language
add_filter('language_attributes', 'add_og_xml_ns');
function add_og_xml_ns($content) {
  return ' xmlns:og="http://ogp.me/ns#" ' . $content;
}

add_filter('language_attributes', 'add_fb_xml_ns');
function add_fb_xml_ns($content) {
  return ' xmlns:fb="https://www.facebook.com/2008/fbml" ' . $content;
}    

// Set your Open Graph Meta Tags
function fbogmeta_header() {
  if (is_single()) {
    ?>
        <meta property="og:title" content="<?php the_title(); ?>"/>
        <meta property="og:description" content="<?php echo strip_tags(get_the_content($post->ID)); ?>" />
        <meta property="og:url" content="<?php the_permalink(); ?>"/>
        <?php $fb_image = wp_get_attachment_image_src(get_post_thumbnail_id( get_the_ID() ), 'thumbnail'); ?>
        <?php if ($fb_image) : ?>
            <meta property="og:image" content="<?php echo $fb_image[0]; ?>" />
            <?php endif; ?>
        <meta property="og:type" content="<?php
            if (is_single() || is_page()) { echo "article"; } else { echo "website";} ?>"
        />
        <meta property="og:site_name" content="<?php bloginfo('name'); ?>"/>

<?php
  }
}
add_action('wp_head', 'fbogmeta_header');

Facebook Feature Image와 Open Graph Meta Tags(http://www.ryanscowles.com)에서 기능을 수정하여 functions에 붙여 넣었습니다.functions.functions, 동작합니다! (wordpress 3.5.1)

<?php
//function to limit description to 300 characters
function limit($var, $limit) {
    if ( strlen($var) > $limit ) {
        return substr($var, 0, $limit) . '...';
    }
    else {
        return $var;
    }
}

// Set your Open Graph Meta Tags
function fbogmeta_header() {
    if (is_single()) {
        //getting the right post content
        $postsubtitrare = get_post_meta($post->ID, 'id-subtitrare', true);
        $post_subtitrare = get_post($postsubtitrare);
        $content = limit(strip_tags($post_subtitrare-> post_content),297);
        ?>
        <meta property="og:title" content="<?php the_title(); ?>"/>
        <meta property="og:description" content="<?php echo $content; ?>" />
        <meta property="og:url" content="<?php the_permalink(); ?>"/>
        <?php $fb_image = wp_get_attachment_image_src(get_post_thumbnail_id(     get_the_ID() ), 'thumbnail'); ?>
        <?php if ($fb_image) : ?>
        <meta property="og:image" content="<?php echo $fb_image[0]; ?>" />
        <?php endif; ?>
        <meta property="og:type" content="<?php
        if (is_single() || is_page()) { echo "article"; } else { echo "website";}     ?>"
        />
        <meta property="og:site_name" content="<?php bloginfo('name'); ?>"/>
        <?php
        }
        }
add_action('wp_head', 'fbogmeta_header');
?>

워드프레스를하면 이 를 워드프레스로 $_GET ★★★★★★★★★★★★★★★★★」$_POST워드프레스는 이 모든 것을 가능하게 합니다.

플러그인을 사용하지 않으려는 마음은 이해하지만 Wordpress SEO나 Facebook과 같은 일부 제품은 이를 추가하여 여러분의 삶을 더 편하게 해줄 수 있습니다.그렇지 않으면 간단한 것을 찾아서 분해하여 그들이 무엇을 하는지 확인합니다.

직접 롤링을 하려면 템플릿 태그를 사용하여 제목을 설정해야 합니다.투고 타이틀은 the_title() 함수를 통해 취득할 수 있습니다.찾고 있는 다른 메타데이터 포인트에 대한 다른 항목이 있습니다.

당신의 your your : 당신의 당당.og:image파일이 한쪽에 50px 이상 있어야 합니다.그렇지 않으면 Facebook에 표시되지 않습니다.파비콘은 거의 항상 너무 작아요.전체 이미지 사양에 대해서는 이 페이지를 참조하십시오.

og:url&og:titledynamic, this dynamic, "dynamic"을 사용해 .

<meta property="og:url" content="<?php echo get_permalink($post->ID); ?>"/>
<meta property="og:title" content="<?php echo $post->post_title; ?>"/>

에 '있다'를 할 수 있는 .$post물건.상세한 것에 대하여는, http://www.rlmseo.com/blog/wordpress-post-variable-quick-reference/ 를 참조해 주세요.

Facebook og:url 태그를 동적으로 만들기 위해 다음 코드 행을 사용하여 해결했습니다.

<meta property="og:url" content="<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>"/>

{ picture: '<?php echo 'http://internetlols.com'.$_SERVER['REQUEST_URI']; ?>' },

언급URL : https://stackoverflow.com/questions/11075694/dynamic-facebook-og-meta-tags-in-wordpress-php