PR

WordPress STINGER3 を使っていてショートコードが見えちゃって嫌な場合の対処法(簡易版)

wordpress
記事内に広告が含まれている事があります。

スクリーンショット 2013-09-06 10.32.40

 

本ブログも「SEO対策に強い無料WordPressテーマ「Stinger」」を有り難く使わせて頂いてます。

@ENJILOG さんに感謝です。

さて、現在「STINGER3」を使わせてもらっているのですが、ループする箇所にショートコードがそのまま出ちゃいます。流石にいやだなぁ〜と思いちょっとだけカスタマイズしてみました。

スクリーンショット 2013-09-06 10.03.16

※以下記載するファイル名は STINGER3 のテーマフォルダー下のファイル名になります。

functions.php に以下を追記する

//ショートコードを外す
function akita_noshotcode($content){
    $rtn = "";
    preg_match("/\[.+?\]/",$content,$retArr);
    $rtn = str_replace($retArr[0],'',$content);
    return $rtn;
}

関数名は他の関数となるべく当たらないような名前にする為に akita_ と入れてあります。

次に

sidebar.php
archive.php
home.php
single.php

のそれぞれのファイル内の(他にもあるかも・・・)

strip_tags($post-> post_content)
となっている箇所を

strip_tags(akita_noshotcode($post-> post_content))
と書き換えます。

これでループしている箇所にある投稿の頭にショートコードが書いてあっても見せなくする事が出来ます。

スクリーンショット 2013-09-06 10.04.07

めでたしめでたし。

できれば次回のバージョンアップ時にショートコードが見えないような対処をして頂けると嬉しいです。

 

追記

 

Stinger3 が正式に公開されたようですね。対応してるかなぁ〜(stinger3ver20130906 では対応なかったようです)

Stinger3の正式公開

コメント

  1. Way2Go より:

    Stinger3テーマの抜粋記事のショートコード表示を非表示にする対策
    WordPressのテーマ「Stinger3」にて、トップのページやサイドバーに表示されている抜粋記事に、ショートコードがそのまま表示されるので嫌だなぁと思ってました。
      これを解決する下…

  2. luvjapan より:

    夜分遅くに突然の書き込み申し訳ありません。

    WordPressのBlog一覧にて囲み式のショートコードを表示出来ない様にしたいのですがどの様にしたら消せるか困っております。

    もしよろしければご回答頂けませんでしょうか?

    Blog一覧にはコンテンツの一部を表示させる様にしているのですが下記のキャプションのショートコードが消えません。
    [caption id="attachment_2000" align="alignleft" width="189"]画像のキャプション文字[/caption]

    なのでまずこちらの記事を参考にしながらBlog一覧表示のloop.phpにてコンテンツ出力のコードを以下の様に記述しました。
    post_content, ‘UTF-8’)>200){
    $content= mb_substr(strip_tags(akita_noshotcode($post->post_content, ”)), 0, 200, ‘UTF-8’);
    echo $content.”;
    }else{
    echo strip_tags(the_content(), ”);
    }
    ?>

    続いてfunctions.phpにショートコードを非表示にする為に以下を記述しました。
    //ショートコードを外す
    function akita_noshotcode($content){
    $rtn = “”;
    preg_match(“/\[.+?\]/”,$content,$retArr);
    $rtn = str_replace($retArr[0],”,$content);
    return $rtn;
    }

    すると[caption]までのショートコードは消えるのですが以下の
    画像のキャプション文字[/caption]までが消えないで表示されたままです。

    囲み式のショートコードを消すにはどの様にfunctions.phpに記述すれば宜しいでしょうか?

    例えばpreg_match(“/\[.+?\]/”の部分を書き換えてショートコードの終了タグを消すことは出来ますでしょうか?

    お忙しいと思いますが、もしよろしければご回答宜しくお願い致します。

    • 秋田 秋田 より:

      luvjapan さん、すでに解決してるかもしれませんが、 お察しの通り「preg_match(“/\[.+?\]/”」ここの正規表現で解決出来ると思います。
       
      今、別件で手を離せないので確認してはいませんが、「preg_match(“/\[\/.+?\]/”」これで行けるかなと・・・「\/」を追記しています。
       
      試してみてください。

  3. luvjapan より:

    おはようございます。
    お忙しい中、ご回答ありがとうございます。
    akitaさんのご教授の通り追記しましたら成功致しました。

    以下のコードを追記しました。

    preg_match( “/\[.+?\]“,“/\[\/.+?\]/“

    本当に助かりました。

    これからもブログ読ませていただきます。

    ありがとうございました。

  4. luvjapan より:

    度々すみません。
    先ほどのコードはショートコードも消えますが本文も一緒に消えてしまいますので自分の思った表示はできませんでした。なので
    $content = strip_shortcodes( $content );にて対応致しました。
    アドバイスありがとうございました。

タイトルとURLをコピーしました