2016-09-07 3 views
1

私はテーマCoral Darkを使ってブログを行っています。このテーマは投稿サムネイルをサポートしています。個々の投稿から削除し、他の場所(家、アーカイブ、カテゴリなど)に残したいと思います。サムネイルはプラグイン可能な関数で作成されているので、理論的にはサムネイルをオーバーライドする必要があります。これを私の子テーマのfunctions.phpに追加すると:投稿のみの機能を無効にすることはできません

function coral_dark_post_thumbnail() {} 

サムネイルは効果的に消えます。ただし、投稿でのみ機能を実行する条件付きの場合は、

if (is_single()) { 
    function coral_dark_post_thumbnail() {} 
} 

何もしません。サムネイルはどこにでも表示されます。私はワードプレスが単にそれを無視するので、is_singleを何かに置き換えることさえできます。私はこのような条件に否定を追加した場合と:

if (! is_single()) { 
    function coral_dark_post_thumbnail() {} 
} 

サムネイルが消えますが、どこでも。繰り返しますが、結果が同じであるため、is_singleを何でも置き換えることができます。私は何が起こっているのか分からない。事前に

if (! function_exists('coral_dark_post_thumbnail')) : 
/** 
* Displays an optional post thumbnail. 
* 
* Wraps the post thumbnail in an anchor element on index views, or a div 
* element when on single views. 
* 
* Create your own coral_dark_post_thumbnail() function to override in a child theme. 
* 
*/ 
function coral_dark_post_thumbnail() { 
    if (post_password_required() || is_attachment() || ! has_post_thumbnail()) { 
     return; 
    } 

    if (is_singular()) : 
    ?> 

    <div class="post-thumbnail"> 
     <?php the_post_thumbnail('large'); ?> 
    </div><!-- .post-thumbnail --> 

    <?php else : ?> 

    <a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true"> 
     <?php the_post_thumbnail('post-thumbnail', array('class' => 'alignleft smallpostthumb', 'alt' => the_title_attribute('echo=0'), 'sizes' => '(max-width: 480px) 100vw, 210px')); ?> 
    </a> 

    <?php endif; // End is_singular() 
} 
endif; 

感謝:

これが本来の機能です。 :)

答えて

0

あなたの問題は状況にあるようです。あなたは

if (is_single()) { 
    function coral_dark_post_thumbnail() {} 
} 

が代わりに使用したい機能の李ラップするための条件を使用することはできません。

function coral_dark_post_thumbnail() { 
    if (is_single()) { 
      //TODO: Something 
    } 
} 

上記動作するはず行います。

+0

残念ながら、プラグインされた関数のポイントは、同じ名前の別の関数がすでに存在する場合には実行されないためです: 'if(!function_exists( 'coral_dark_post_thumbnail')):'同じ名前の別のものを宣言しているという事実のために元の関数が停止されるため、条件内に置かれたものは無関係になります。だからこそ、私はそれを宣言して(そして、オーバーライドする)ことを個々の投稿だけにしたいのです。 – Stealth

+0

私の他の選択肢は、元の関数全体をコピー/ペーストして条件内に置くことですが、それは私が探しているものではありません。 – Stealth

+0

上記のやり方でやってみたことがありますか? – DpEN

関連する問題