0

個々のブログ投稿からコンテンツを出力するWordpressサイトがありますthe_content()

ブログの投稿はすべて、小さなギャラリーといくつかのテキストの 2 つで構成されています。

<div class="gallery"><img></img>Blah Blah</div>
<p>Text</p>
<p>Text</p>

ギャラリーとテキストを分割し、次のように左側の div にギャラリーを出力し、右側の div にテキストを出力したいと思います。

<div id="left">GALLERY CONTENT</div>
<div id="right">TEXT CONNTENT</div>

私はこれをやろうとしましstrip_tags(the_content(), '<p>')たが、そうではありません - ギャラリーを含むすべてを出力し続けます。

これを行う正しい方法は何ですか?

4

3 に答える 3

0

the_contentコンテンツを返す代わりに、コンテンツを表示するものを使用しています。

コードを次のように変更します

strip_tags(get_the_content(), '<p>')
于 2013-05-11T06:35:35.833 に答える
0

私は少し前にこれとまったく同じ問題を抱えていました。これが私がやったことです(single.php私が問題を抱えていた場所です):

if ( get_post_format() == 'gallery' ) :
    $content = get_the_content();
    $gallery_regex = '/\[gallery.*]/s'; //identify the [gallery] tags within the content

    //get gallery code
    $gallery = preg_match($gallery_regex, $content, $matches);
    $gallery = $matches[0];

    //remove gallery from content
    add_filter('the_content', function($content){
        $gallery_regex = '/\[gallery.*]\s*/s';
        return preg_replace($gallery_regex, ' ', $content);
    });

endif;

基本的に、コンテンツからギャラリー タグを削除するために正規表現を使用しました。

$galleryまだショートコードが含まれています。ランダムに表示することはできません。または、実際にショートコードを表示します。それを実行する必要があります。これにより、出力が表示されます。

if ( get_post_format() == 'gallery' ) {
    echo '<div id="left">'. do_shortcode($gallery) .'</div>';
}

コンテンツにはギャラリーが含まれていないため、次の操作を実行できます。

<div id="right"><?php the_content(); ?></div>
于 2013-05-12T02:46:54.520 に答える
0

あなたが本当にやりたいことは私にははっきりしていません。それに加えて、出力からいくつかの(ごくわずかな)ソースコードを含めましたが、実際に答えるには、テンプレートからの関連コードを含める必要がありますファイル。

(そして、コアファイルに触れてはならないことだけを理解するために+1 )

auto Pとにかく、 wordrpass によって生成されたものだけを無効にしたいのではないかと思うので、試してみてください

remove_filter('the_content', 'wpautop');

(テーマの functions.php に追加します。)

または、使用できます

add_filter('use_default_gallery_style', '__return_false');

ギャラリーのスタイリングを「リセット」するだけです。

または、独自のギャラリー スタイルをフィルタリングすることもできます。これにより、より適切にターゲットを絞ることができます。

add_filter( 'gallery_style', 'my_own_gallery_style', 99 );

function my_own_gallery_style() {
    return "<div class='gallery'>"; // put your own
}

適切な出力が生成されない場合は、より具体的な情報やコードを含めてください。

もちろん、これを処理するためのより高度な方法がありますが、詳細な情報がなければ、ターゲットにするのは困難です。

たとえば、元のショートコード関数を削除してから独自のギャラリー スタイルを追加することで、独自のギャラリー スタイルを作成できますが、これらはもう少し高度な手法です。

// deactivate WordPress function
remove_shortcode('gallery', 'gallery_shortcode');

// activate your own own function
add_shortcode('gallery', 'my_own_gallery_shortcode');

// the own renamed function
function my_own_gallery_shortcode($attr) {
...
}

一方、「the_content」の一部を「キャッチ」して別の方法でループに表示する場合は、別の回答でHEREで説明されているように、いつでも別の手法を使用できます。

于 2013-05-11T02:38:52.947 に答える