サポート » 使い方全般 » 投稿内でphpの条件分岐を稼働させる方法わかりませんか?

  • 投稿内で条件分岐を使いたいと思っています。
    投稿、に限らず、固定ページでも・・・つまりは、ダッシュボードから普通に記事を書く箇所で、です。
    ソースで言えば、the_content();で表示される箇所内で、です。

    イメージとして、例えば投稿内容が以下のような感じです。

    **************************

    記事本文

    if(is_single()):

    記事ページのみで表示される内容

    endif;

    if(is_tax()):

    タクソノミー一覧のみで表示される内容

    endif;

    **************************

    if(is_single()):
    などを、ショートコードが作成できるプラグインShortcode Exec PHPで作成し、

    **************************

    記事本文

    [is_single]

    記事ページのみで表示される内容

    [end_is_single]

    [is_tax]

    タクソノミー一覧のみで表示される内容

    [end_is_tax]

    **************************

    としましたが、エラー文が表示されるだけで条件分岐もされません。

    if(is_single()):

    endif;
    の記述自体が間違っているなどありましたら、激しい突込み入れていただいて結構です。

    条件としては、大量の投稿数のため、エクセル→csv→csvimporterという流れでの作業が必要で、さらにwordpressを良く分からない人でも使えるようにするためにエクセルで書いたものが
    ・記事本文
    ・記事ページのみで表示される内容
    ・タクソノミー一覧のみで表示される内容
    に反映される仕組みが必要です。(もちろんエクセル側はそれなりに工夫してます。)

    また、
    ・記事ページのみで表示される内容
    などもかなりの文章量でさらに大量の種類の為、さらに先述してる通りcsvimporterでのインポートが条件のためfunctions.phpでショートコードを作ってしまうという方法も不可能です。

    その結果、投稿内で条件分岐するしかないという判断に至ったという経緯です。

    セキュリティのことを考えると、記事内に直接phpを記述できる
    Exec-PHP
    のプラグインは良くないという話もありますので、ショートコードで解決したいと思っています。

    長文となり申し訳ございませんが、何卒よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは、

    [is_single]
    
    記事ページのみで表示される内容
    
    [end_is_single]

    ショートコードは、値をreturn するものなので、このようなショートコード自体が作成する事は出来ないと思います。

    なので、エラーが発生しているのだと思います。

    投稿の中で、表示非表示をコントロールするなら、CSSのクラスを使うのが一般的だと思います。

    body_class() と post_class()の自動出力クラスをうまく使えば、必要な場面で表示非表示のコントロールが可能になります

    トピック投稿者 greon999

    (@greon999)

    >nobitaさん
    ご回答ありがとうございます。

    ショートコードではやはり無理ですか・・・

    CSSでの非表示箇所が多くなるとSEO的に良くないので、CSSでの対応は考えていませんでしたが、それしか方法ないかもですね。
    やってみます。

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「投稿内でphpの条件分岐を稼働させる方法わかりませんか?」には新たに返信することはできません。