1

投稿がホームページにリストされているときに、投稿のギャラリーが表示されないようにしたいと思います。

ホームページに掲載する際add_filterなどに活用いただければと思います。apply_filter

メディアの追加ボタンをクリックすると、投稿にギャラリーを追加できます。既存の画像を選択するか、投稿内にギャラリーを作成する追加の画像をアップロードできます。$post['content']これにより、のようなショートコードが埋め込まれます[gallery ids="37,38,39,40,41,42]

問題は、投稿がホームページと個々の投稿自体に含まれている場合に、デフォルトで表示されることです。

更新:これは、要件を達成するために私が現在行っていることです。もっとエレガントな方法があると思います。

        <div class="entry-content">
        <!-- Begin Post Content -->
                    <?php if ( is_single() ) : ?>
                    <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'faceboard' ) ); ?>
                    <?php else : // Filter Gallery ShortCode out ?>
                    <?php 
                        $content = '';
                        $content = get_the_content(); 
                        $content = preg_replace('/\[gallery\sids="[0-9]+(,[0-9]+)*,?"\s?(royalslider="\d")?\]/s',"",$content);
                        echo wpautop( $content, 1);
                    ?>
                    <?php endif; // is_single() ?>
        <!-- End Post Content -->
        <?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'faceboard' ), 'after' => '</div>' ) ); ?>
        </div><!-- .entry-content -->
4

1 に答える 1

0

以下をテーマのfunctions.phpファイルまたはカスタム プラグインに追加できます(テーマに触れずに無効にできるため、より適切です)。

フィルターpost_galleryは独自のギャラリーを作成するために使用され、$contentパラメーターはデフォルトで空になります。空が返された場合、元の[gallery]ショートコードが処理されます。
ここでは、ダミーの空の値を使用しているため、フィルタはだまされて実際のギャラリー コンテンツを渡していると認識されますが、これは単なる空白です。

add_filter( 'post_gallery', 'disable_home_galleries_so_17635042', 10, 2 );

function disable_home_galleries_so_17635042( $content, $atts )
{
    // http://codex.wordpress.org/Conditional_Tags
    if( is_home() )
        return '&nbsp;';

    return $content;
}
于 2013-07-14T01:22:15.403 に答える