Support » Code oplossingen gezocht » Meta-info weergeven als deze er is, anders niks

  • Hallo allemaal,

    Graag zou ik willen weten welke code ik moet gebruiken om de meta-info weer te geven als deze er is en anders te verbergen. Een voorbeeld is hier te vinden:
    de pagina die wel meta-info heeft: http://vormgeving.elkana.nl/wp/project/gea-westrik/
    de pagina die geen meta-info heeft maar wel een blok (onderaan net boven ‘Edit this page’) laat zien: http://vormgeving.elkana.nl/wp/project/geboortekaartje-johan-elise/

    Nu gebruik ik: <?php the_meta(); ?> om de info weer te geven met met deze css:

    .post-meta { line-height: 20px; font-family: 'Open Sans', sans-serif; font-size: 13px; color: #676761; background-color: #000; border: 2px solid #676761; padding: 5px;}
    .post-meta-key { line-height: 20px; font-family: 'Open Sans', sans-serif; font-size: 13px; font-weight: bold; color: #676761; background-color: #000; }

    Maar als ik niks heb ingevuld voor de meta-info, (dit is ingevuld dmv Custom Fields) wil ik graag dat dit niet weergegeven wordt en dus ook niet het grijs omrande blokje.

    Kan iemand mij vertellen hoe ik dit moet doen? Het is iets met de if/else functie maar ik weet niet hoe ik deze moet gebruiken in dit geval.

8 reacties aan het bekijken - 1 tot 8 (van in totaal 8)
  • probeer eens iets als :

    if (get_post_meta( get_the_ID() )) the_meta();

    (niet getest, maar haalt de post_meta van de huidige post op en controleert of de array niet leeg is voordat the_meta aangeroepen wordt.

    Dit alles natuurlijk ervan uitgaande dat het ook werkelijk the_meta is die de class ‘post_meta’ aanroept en niet een omliggende div ofzo.

    Hmm, dit lijkt niet te werken owagu.
    Ik het deze code <?php if (get_post_meta( get_the_ID() )) the_meta(); ?> in de template gezet maar het blokje wordt toch nog weergegeven.

    wpprogrammeurs.nl

    (@wordpressprogrammeursnl)

    lijkt er bijna op alsof iemand e.e.a. hard gecodeerd heeft.

    waarom staat dit in je script ?
    <!–EXTRA INGEVOEGD<ul class=’post-meta’>

    –>

    die class wordt al aangeroepen door the_meta();

    Kun je een stuk van de php code plakken om the_meta(); heen ?

    Dat met extra ingevoegd, heb ik er zelf in gezet. Dit moest ik invoegen van ElegantThemes om de inhoud van de Custom Fields weer te kunnen geven. In principe staat dit dus niet in de template.

    Onderstaande is de loop-single_project.php van het ElegantThemes thema Flexible:

    <?php if (et_get_option('flexible_integration_single_top') <> '' && et_get_option('flexible_integrate_singletop_enable') == 'on') echo (et_get_option('flexible_integration_single_top')); ?>
    
    <article id="post-<?php the_ID(); ?>" <?php post_class('entry clearfix'); ?>>
    	<div class="post-content">
    		<!--<?php
    			$index_postinfo = et_get_option('flexible_postinfo2');
    			if ( $index_postinfo ){
    				echo '<p class="meta-info">';
    				et_postinfo_meta( $index_postinfo, et_get_option('flexible_date_format'), esc_html__('0 comments','Flexible'), esc_html__('1 comment','Flexible'), '% ' . esc_html__('comments','Flexible') );
    				echo '</p>';
    			}
    		?>-->
    		<?php the_content(); ?>
    		<?php wp_link_pages(array('before' => '<p><strong>'.esc_attr__('Pages','Flexible').':</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
    <!--EXTRA INGEVOEGD<?php the_meta(); ?>--> Hier onder de post_meta | <?php if (get_post_meta( get_the_ID() )) the_meta(); ?>
    		<?php edit_post_link(esc_attr__('Edit this page','Flexible')); ?>
    	</div> 	<!-- end .post-content -->
    </article> <!-- end .entry -->
    
    <?php if (et_get_option('flexible_integration_single_bottom') <> '' && et_get_option('flexible_integrate_singlebottom_enable') == 'on') echo(et_get_option('flexible_integration_single_bottom')); ?>
    
    <?php
    	if ( et_get_option('flexible_468_enable') == 'on' ){
    		if ( et_get_option('flexible_468_adsense') <> '' ) echo( et_get_option('flexible_468_adsense') );
    		else { ?>
    		   <a href="<?php echo esc_url(et_get_option('flexible_468_url')); ?>"><img src="<?php echo esc_url(et_get_option('flexible_468_image')); ?>" alt="468 ad" class="foursixeight" /></a>
    <?php 	}
    	}
    ?>
    
    <?php
    	if ( 'on' == et_get_option('flexible_show_postcomments') ) comments_template('', true);
    ?>

    Nou, iemand een idee?

    wpprogrammeurs.nl

    (@wordpressprogrammeursnl)

    wat doet het als je het hele <?php if (get_post_meta( get_the_ID() )) the_meta(); ?> eruit haalt ?

    Ik blijft de extra invoeging <!– –> vreemd en onnodig vinden.

    ook te proberen :
    <?php if (!empty(get_post_meta( get_the_ID() ) ) ) the_meta(); ?>

    Die <!– –> doe ik omdat ik de code dan uitschakel! Als ik elke keer die code moet verwijderen en er later weer in moet zetten dan weet ik niet meer waar ik die neer moet plempen. Ik zal vandaag jouw oplossing even proberen.

    Als ik die code gebruik krijg ik de volgende foutmelding:

    Fatal error: Can’t use function return value in write context in /usr/home/deb9449/domains/elkana.nl/public_html/vormgeving/wp/wp-content/themes/Flexible/loop-single_project.php on line 15

8 reacties aan het bekijken - 1 tot 8 (van in totaal 8)
  • Het onderwerp ‘Meta-info weergeven als deze er is, anders niks’ is gesloten voor nieuwe reacties.