Je construis un shortcode pour afficher certains messages dans une page. Jusqu'ici, cela ressemble à ceci:
function bloghome( $atts ) {
extract( shortcode_atts( array(
'id' => 17 // Add the *default category id
), $atts ) );
$posts = get_posts( array(
'posts_per_page' => -1,
'post_status' => 'publish',
'cat' => $id,
) );
$return = '';
$return .= '<div class="row page-template-press bloghome">';
foreach ( $posts as $post ) {
$link = get_permalink( $post->ID);
$title = get_the_title($post->ID);
$img = get_the_post_thumbnail( $post->ID, 'medium' );
$snippet = get_post_meta($post->ID, 'Snippet', true);
$return .= '<article class="col-lg-'.$width.' col-md-'.$width.' col-sm-'.$width.'"><a href="'.$link.'"><header><div class="page-title-post">'.$title.'</div></header><div class="entry-content">'.$img.'<p class="snippet">'.$snippet.'</p></div></a></article>';
}
$return .= '</div>';
return $return;
}
add_shortcode( 'bloghome', 'bloghome' );
Je veux ajouter une condition cependant, pour définir la largeur de la colonne si le post est collant.
J'ai essayé ce qui suit, mais cela génère une erreur:
foreach ( $posts as $post ) {
if ( is_sticky() ) {
$width = '12'
} else {
$width = '4'
};
$link = get_permalink( $post->ID);
$title = get_the_title($post->ID);
$img = get_the_post_thumbnail( $post->ID, 'medium' );
$snippet = get_post_meta($post->ID, 'Snippet', true);
$return .= '<article class="col-lg-'.$width.' col-md-'.$width.' col-sm-'.$width.'"><a href="'.$link.'"><header><div class="page-title-post">'.$title.'</div></header><div class="entry-content">'.$img.'<p class="snippet">'.$snippet.'</p></div></a></article>';
}
Il dit: Parse error: syntax error, unexpected '}' in ...
Qu'est-ce que je fais mal?
c'est peut-être plus facile que vous ne le pensiez. Vous codez il manque des apostrophes de fin de ligne:
foreach ( $posts as $post ) {
if ( is_sticky() ) {
$width = '12'
} else {
$width = '4'
};
devrait être
foreach ( $posts as $post ) {
if ( is_sticky() ) {
$width = '12';
} else {
$width = '4';
};