人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Wordpressでog:descriptionから特定の文字をはじきたい

■ 前提
WordpressをPukiwiki記法で書いており、
冒頭に[pukiwiki]というコードを足しています。

利用環境は以下の通りです。
・Wordpress:4.0
・テーマ:TwentyTen(最新版)
・ソーシャルボタンのプラグイン:WP Social Bookmarking Light

■ 起きていること
その上で、記事をfacebookでシェアしようとすると、
この[pukiwiki]というコードが抜粋文面に載ってきてしまいます。(画像参照)

しかし、実際のソースコードでog:descriptionを見ると、
[pukiwiki]は載ってきません。(画像参照)

■ 教えて欲しいこと
実際に表示されるog:descriptionから、特定の文字をはじく方法があれば、
教え頂けますと幸いです。

1414055485
●拡大する

●質問者: rand198
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● かずきち。
●34ポイント

これはwordpressというより、このページのdiscriptionメタタグに依存します。
どこのメタタグが重複しているかは
https://www.google.com/webmasters/tools/
googleのwebマスター→「HTMLの確認」から確認しましょう。
何がmetaタグに記述されているかわかります。

ですが、こちらが解決策です。
PukiWiki/「?」などのリンクを非表示
PukiWikiでは、「PukiWiki」のように半角英字の小文字・大文字を混ぜると、隣に「?」のリンクが自動的に生成されます。
これを消すには、pukiwiki.ini.php の $nowikiname=0; を $nowikiname=1; にしてやればOK。
ini.phpファイルを書き換えて下さい。


かずきち。さんのコメント
これはpukiwikiという文言を削除するための方法です。 他にもしどんな文字を消したいのかは一概に絶対にこれとは言えないと思います。 申し訳ありませんが、pukiwikiは消せます。

rand198さんのコメント
早々にコメント頂き有難うございます! ・WMTでメタタグの重複がないかを確認 ⇒当該ページでの重複は見つけられませんでした。 ・$nowikinameの設定を変更 ⇒改善されませんでした。 説明に不足がありましたので、補足させていただきました。 もし他にもお気づきの点などありましたら、ご指摘頂けますと幸いです。

かずきち。さんのコメント
なるほど、ということは重複するメタタグの記述はなかったのですね? ではではもう一度、googleのウェブマスターでFetch as googleっていう項目があるのですが、このボタンを押してもう一度検索エンジンにこのページに来てもらえるようにしましょう。 もし正しく設定されていれば、検索エンジンも正しくスニペットを作ってくれると思います。

rouge_2008さんのコメント
kazukichi_0914(かずきち。)さん、「$nowikiname」は「[pukiwiki]」を削除する為の設定ではありません。 「WikiName」を無効にして自動リンクさせない為の設定ですから、今回の質問とは関係がありません。(※「BracketName」は有効です。) ・TOP>サーバ構築・運用> PukiWikiをインストールする (Think IT) http://thinkit.co.jp/cert/article/0609/5/6/3.htm >> <span style="font-weight:bold;font-size:medium;">Wiki名を無効にする</span> 最初にWikiの特徴として「Red Hatといった英大小文字の混在した単語は自動リンクになる」と述べました。しかし実際に運用をしていると邪魔になってきます。それは単語単位でしか見てくれないからです。例えば「Red Hat Enterprise Linux」といったキーワードは、1単語としてもWiki名として成り立ちませんし、全体のキーワードとしても当然自動リンクしてくれません。 そういう場合、結局ブランケットで括るしかないわけですが、Wiki名を無効にして常に括るようにしたほうがWiki名として成り立つかどうかで運用ルールを分けなくてよくなるため、逆に使いやすくなると思います。Wiki名を無効にする場合は、pukiwiki.ini.phpの$nowikinameを1にします(リスト7)。 <span style="font-weight:bold;">リスト7:$nowikinameの変更</span> >|| $nowikiname = 1; ||< << メタタグの重複を確認する必要はあると思いますが、解決策が出鱈目すぎます。 少し前に別の質問(http://q.hatena.ne.jp/1413428819)でも質問内容を理解していないと思われる回答をしていましたが、質問を理解してから回答するようにしてください。

質問者から

「Pukiwiki記法で書いている」と書きましたが、
具体的には「Pukiwiki for Wordpress」というプラグインを利用しています。
http://blog.makotokw.com/portfolio/wordpress/pukiwiki_for_wordpress/#content_1_4

こちらのプラグインでは、[pukiwiki][/pukiwiki]内にPukiwiki記法で記述すると、
マークアップしてくれるというものです。

やはりそういった使用上、消すのは難しいのでしょうか・・・。
他にもお気づきの点などありましたら、教えていただけますと幸いです。


2 ● a-kuma3
●33ポイント

あの、質問者の id:rand198 さんがコメントに書いた、この記事なんですが。
http://liginc.co.jp/programmer/archives/5358

fb_meta_tag のフィルターですけど、これ使えば、description の内容を編集できるんじゃないでしょうか。

Facebook のプラグインって、これですよね。
http://plugins.svn.wordpress.org/facebook/tags/1.5.5/open-graph-protocol.php

function add_og_protocol() が OGP のデータを作ってる。
416 行目くらいまでで、meta タグのデータを作り終わってる。
例えば、description は、$meta_tags[ self::OGP_NS . 'description' ] に詰まってる。

432 行目で、fb_meta_tags のフィルターを、この $meta_tags を引数にして呼び出してる。

これって、fb_meta_tags のフィルターで $meta_tags の内容を編集して、つまり、pukiwiki の記述を取り除いて、返してあげれば良いんじゃないでしょうか。

実際にフィルターに定義する関数は、こんな感じに、なると思います。

<?php

add_filter("fb_meta_tags", "remove_pukiwiki_tag");

function remove_pukiwiki_tag($meta_tags) {
 $d = $meta_tags[ Facebook_Open_Graph_Protocol::OGP_NS . 'description' ];
 $d = preg_replace("/\[\/?pukiwiki\]/", '', $d);
 $meta_tags[ Facebook_Open_Graph_Protocol::OGP_NS . 'description' ] = $d;

 return $meta_tags;
}
?>

3 ● ぽけっとしすてむ
●33ポイント

現在使用しているOGP出力プラグイン(Facebook公式プラグイン)が、投稿の生データ(編集時に表示されるテキスト)を参照しているために[pukiwiki]と表示されてしまうと考えられます。

対応策として2点挙げます。

1.All in One SEO Pack等のプラグインで個別に設定する
WordPress › All in One SEO Pack « WordPress Plugins
一般的なSEO対策をするためのプラグインですが、OGPの埋め込み、記事ごとの設定などが可能です。

f:id:psne:20141029200740p:image


2.必要な部分のみpukiwiki記法を行う
Wordpressには、標準で柔軟な装飾が可能なエディタが準備されています。
そのため、記事の「ツカミ」の部分のみ通常の方法で記述する事で回避できます。

記事の概要。はてな人力検索で回答しました。
…(160文字程度書くと良い具合になると思います。)
[pukiwiki]
記事本文の続き
[/pukiwiki]

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ