ETERNITY DESIGN BLOG

WordbookerのOGP

このところ時間が空いているので、この時間を使っていろいろとやってみようと思い、まずはBlogに今時なりの機能をと思って3.1.x以来のアップデートなどをしているのですが、そのひとつ、Facebookとの連携でWordbookerを利用してeternity designのFacebookページのウォールへ投稿をしています。WordBookerはOGPの出力にも対応しています。

しかし、Facebookにあるデバッガーで警告が表示されたりと気に入らない部分があるので修正しました。

ホームだとog:urlなどが出力されていなっかたのを修正したり、改行など少し整形したり、og:site_nameでWPのdescriptionが出力されるのを削除したりなどです。

function wordbooker_og_tags(){
    if (is_404()) {return;}
    global $post;
    # Stops the code firing on non published posts
    if ('publish' != get_post_status($post->ID)) {return;}
    $bname=get_bloginfo('name');
    $bdesc=get_bloginfo('description');
    $wordbooker_settings = wordbooker_options();     
    # Always put out the tags because even if they are not using like/share it gives Facebook stuff to work with.
        $wordbooker_post_options= get_post_meta($post->ID, '_wordbooker_options', true); 
        $wpuserid=$post->post_author;
        if (is_array($wordbooker_post_options)){
            if  ($wordbooker_post_options["wordbooker_default_author"] > 0 ) {$wpuserid=$wordbooker_post_options["wordbooker_default_author"];}
        }
    
        if ( (is_single() || is_page()) && !is_front_page() && !is_category() && !is_home() ) {
            $post_link = get_permalink($post->ID);
            $post_title=$post->post_title;
            echo ' ' . "n";
            echo ' ' . "n";
            echo ' ' . "n";

            $ogimage=get_post_meta($post->ID, '_wordbooker_thumb', TRUE);
            if (strlen($ogimage)4) {
                $ogimage=$wordbooker_settings['wb_wordbooker_default_image'];
            }
            if (strlen($ogimage)>4) {
                echo '' . "n";
            }
        } 
        else
        { # Not a single post so we only need the og:type tag
            echo ' ' . "n";
            echo '' . "n";
            echo ' ' . "n";
            echo '' . "n";
        }
        
        $blog_name = get_bloginfo('name');
        echo '' . "n";

        #wordbooker_get_option('wordbooker_description_meta_length')
    if ($meta_length = wordbooker_get_option('wordbooker_description_meta_length')) {
        if (is_single() || is_page()) {
            $excerpt=get_post_meta($post->ID, '_wordbooker_extract', TRUE);
        #var_dump($excerpt);
            if(strlen($excerpt) post_content,$wordbooker_settings['wordbooker_extract_length']);
                update_post_meta($post->ID, '_wordbooker_extract', $excerpt);
    #    var_dump($excerpt);
            }
            # If we've got an excerpt use that instead
            if ((strlen($post->post_excerpt)>3) && (strlen($excerpt) post_excerpt; 
                $description = str_replace('"','"',$post->post_content);
                $excerpt = wordbooker_post_excerpt($description,$meta_length);
                $excerpt = preg_replace('/(r|n)+/',' ',$excerpt);
                $excerpt = preg_replace('/ss+/',' ',$excerpt);
    
                update_post_meta($post->ID, '_wordbooker_extract', $excerpt);
            }
            # Now if we've got something put the meta tag out.
            if (isset($excerpt)){ 
                $meta_string = sprintf("", htmlspecialchars($excerpt,ENT_QUOTES));
                echo $meta_string . "n";
            }
        }
        else {
            $meta_string = sprintf(" ", get_bloginfo('description'));
            echo $meta_string . "n";
        }
    }
    
    if (strlen($wordbooker_settings["fb_comment_app_id"])<6) {
        if ($wordbooker_settings['wordbooker_fb_comments_admin']) {
            $xxx=wordbooker_get_cache(-99,facebook_id,1);
            #var_dump($wordbooker_settings['wb_wordbooker_default_image']);
            if (!is_null($xxx)) {
                echo '';
            }
        }
        else {
            $xxx=wordbooker_get_cache( $wpuserid,facebook_id,1);
            if (!is_null($xxx->facebook_id)) {
                echo 'facebook_id.'" />';
            }
        }
    }
    if (strlen($wordbooker_settings["fb_comment_app_id"])>6) {
        echo '';
    }
    if (defined('WORDBOOKER_PREMIUM')) {
        echo ' ';
    }
    
}

修正したのはWordbooker 2.0.9
wordbooker.phpの1576行目〜1671行目が対象です。

しかし、wordbookerのコード見にくすぎる。

ABOUT ME

名古屋を中心に、フリーランスでホームページ制作してます。 デザイン・サイト制作・WordPress案件・Flash制作、JavaScript(jQuery)と幅広く対応可能です。 案件のご依頼・ご相談はCONTACTよりご連絡ください。

CATEGORIES

ARCHIVES

TAGS