Ondersteuning » Code oplossingen gezocht » Split 'the_content' in three separate sections

  • Opgelost iPixtitude

    (@pixelprinses)


    When I think about it, I would basically want to see that ’the_content’ will be split in three sections, f.i.:

    – the first paragraph of the_content;
    – the featured image with caption text;
    – the rest of the_content.

    Can you help me out on this?

    Because I have already tried this:

    ?php
        // original content display
            // the_content();
        // split content into array
            $content = split_content();
        // output first content section in intro
            echo '<div id=”intro">', array_shift($content), '</div>';
        // output featured image after intro
    if( sdw_get_option( 'lay_a_fimg' ) && ( !$format || ($format && sdw_get_option('lay_a_format') == 'icon') ) && $fimg = sdw_featured_image('sdw-lay-a') ):
           echo $fimg;
    if(sdw_get_option( 'lay_a_fimg_cap' ) && !$format && $caption = get_post(get_post_thumbnail_id())->post_excerpt) : ?>
    
    <figcaption>
     <?php echo $caption; ?>
    </figcaption>
    endif; 
    
        // output remaining content sections in rest of content
            echo '<div id=”restofcontent">', implode($content), '</div>';
    ?>

    And that does not seem to work.

    Hoping to hear from you soon.

    Kindest regards,
    Irene.
    http://www.mightymusings.nl

6 reacties aan het bekijken - 1 tot 6 (van in totaal 6)
  • Hi Irene,

    Bij elke bericht bestaat de mogelijkheid om een ‘summary’ op te geven.

    1. Dashboard > klik TAB rechtsboven ‘scherminstellingen’
    2. vink AAN ‘samenvatting’> er verschijnt een extra veld onder de edit-pagina.
    3. Gebruik dit om het eerste blok van de gewenste tekst in te voeren
    4. Daarmee heb je je eerste probleem al [heel eenvoudig] opgelost.

      Desgewenst kan je de inhoud van dit veld opnemen in een php-bestand.

      De rest van je vraag laat ik graag aan de ‘knappe koppen’ over.

    Thread starter iPixtitude

    (@pixelprinses)

    Euhm… @w.P. Ginfo: dat wist ik, maar is allesbehalve een oplossing.

    Je kunt de tekst splitsen met de More-tag; in jouw geval zet je die More-tag achter de 1e paragraaf. En dan wordt het wat puzzelen met de opmaak in single.php om alles mooi op zijn plaats te krijgen.
    Om te vrmijden dat je aanpassingen verloren gaan bij een eerstvolgende update, werk je best met een child theme.

    Thread starter iPixtitude

    (@pixelprinses)

    @staartmees: ook dat is niet de oplossing.

    Dit is de oplossing. In functions.php van het child theme plaatste ik:

    add_filter( 'the_content', 'insert_featured_image', 20 );
    
    function insert_featured_image( $content ) {
        if(is_singular('post')){
         $content = preg_replace( "/<\/p>/", "</p>" . sdw_featured_image('sdw-lay-a'), $content, 1 );
         return $content;
        }
        else{
          return $content;
        }
    }

    En voor het melden van de caption van de uitgelichte afbeelding onderaan the_content ook t.b.v. functions.php van het child theme:

    add_filter ('the_content', 'insertContent');
    
    function insertContent($content) {
    if(is_singular('post')){
    	$content .= '<span class="caption">' . get_post( get_post_thumbnail_id() )->post_excerpt . '</span>';
    	return $content;
    }
    else{
          return $content;
        }
    }

    Maar toch dank voor het meedenken! 😉

    Graag gedaan.
    Is je probleem opgelost Deel je oplossing met dit forum.
    … of hou je het voor gezien…?

    Vergeet aub niet de thread als ‘resolved’ / ‘opgelost’ te taggen in de rechter zijbalk.

    Thread starter iPixtitude

    (@pixelprinses)

    Opgelost

6 reacties aan het bekijken - 1 tot 6 (van in totaal 6)
  • Het onderwerp ‘Split 'the_content' in three separate sections’ is gesloten voor nieuwe reacties.