2012-03-11 9 views
0

私はカスタムメディアセンターのWordPressウェブサイトを作成しています。私はこれを経由して私のテンプレートに挿入する自分のギャラリーを作成している 添付ファイルがある場合はショートコードを表示

...

<?php echo do_shortcode('[gallery customgal="true"]'); ?> 


だがしかし、機会に、時には私のポストはちょうど画像以外の添付ファイルを持つことになります。

だから私は私のポストに他の添付ファイルを追加しますEG Attachmentsプラグインを使用して、このショートを追加した...

<?php echo do_shortcode('[attachments]'); ?> 


これが正常に動作します。しかし、私の添付ファイルのショートの上に、私はHタグのタイトルを必要とする...

<h2>Videos</h2> 

<?php echo do_shortcode('[attachments]'); ?> 


しかし、私の問題は何も添付ファイルは私のポストに追加されていない場合は、その後、私はタイトルにこだわって、ありますそれ以下は何もない!

イメージ以外の添付ファイルが存在する場合にのみショートコードを表示することはできますか?このような

何か...

<?php if (attachmentexists()) { ?> 

    <h2>Other Attachments</h2> 

    <?php echo do_shortcode('[attachments]'); ?> 

<?php } ?> 


すべてのヘルプは非常に感謝をいただければ幸いです。

答えて

1

あなたは正しい考えを持っています。例えば、

<?php $attachments = do_shortcode('[attachments]'); ?> 
<?php if($attachments): ?> 
    <h2>Videos</h2> 
    <?php echo $attachments; ?> 
<?php endif; ?> 

を別の方法として、あなたはパラメータを取るために、あなたのショートを修正することができます:ここでの最善の解決策は、おそらく変数に<?php echo do_shortcode('[attachments]'); ?>の結果を代入し、それが設定されていますかどうかを確認することですタイトル[attachments title="Videos"]を入力し、ショートコード内から(同じ)ロジックを実行します。

+0

Chrisさん、ありがとうございました:-)。私はあなたのコードに上記のコメントを追加しました。ありがとう – Joshc

+0

はい - '$ attachments'はショートコードの結果の最初の行に割り当てられていますが、私はそれをエコーし​​ていたので、とにかくはずですが、それは文字列です。 2番目の行には、 'if($ attachments)'が '$ attachments'をブール値(例:true/false)に変換するという点で少し"魔法 "があります。 PHPでは、空の文字列はbooleanにキャストされたときに 'false'です[詳細はこちら](http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting )。要するに、ショートコードが何も返さない場合(例:空文字列)、 'if'文は実行されません。 – chrisn

+0

ニース!私は何が起こっているのか理解しています。私は将来、この方法を試してみることができます、今私はそれが何をすることができるか知っています。あなたの時間と助けてくれてありがとう。 – Joshc

0

私はあなたの質問がまだあるかはかなりわからないんだけど、あなたのPHPあなたが出力方法を変更:

<? 
    if (attachmentexists()) { 
    echo "<h2>Videos</h2>"; 
    echo do_shortcode('[attachments]'); 
    } 
?> 
+0

なぜ彼はそれを変更する必要がありますか?彼が持っているものは容認できる。 – chrisn

+0

確かにそれは動作しますが、そのフォーマットが悪くてかさばります。スクリプトにさらに文字を追加する必要があります。 –

+0

私はそれがフォーマットが間違っていることに同意しますが、実際それは個人的な好みです。私は私の答えで使用した形式を好む。限り、 "かさばる" - それはすべてのサーバー側でとにかく処理されるので、問題ではありません。 – chrisn

関連する問題