- Statut : non résolu
- Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par fibi, le il y a 16 années et 3 mois.
-
AuteurMessages
-
25 août 2008 à 10 h 34 min #462388
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 2.6
– Thème utilisé : Funkyzine
– Plugins en place :
– Nom de l’hebergeur : 1and1
– Adresse du site : http://www.poito-tv.comProblème(s) rencontré(s) :
Bonjour à tous,
Je cherche à widgetiser ma sidebar.
J’ai donc fait la recherche sur le forum et ai rajouté les lignes de code dans function.php, ce qui donne donc :
<?php
if ( function_exists(’register_sidebar’) )
register_sidebar();
function u_get_recent_comments($no_comments = 5, $before = '<li>‘, $after = ‘</li>‘, $show_pass_post = false) {
global $wpdb, $tablecomments, $tableposts;
$request = « SELECT ID, comment_ID, comment_content, comment_author FROM $tableposts, $tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND (post_status = ‘publish’ OR post_status = ‘static’) »;
if(!$show_pass_post) { $request .= « AND post_password = » « ; }
$request .= « AND comment_approved = ‘1’ ORDER BY $tablecomments.comment_date DESC LIMIT
$no_comments »;
$comments = $wpdb->get_results($request);
$output = »;
foreach ($comments as $comment) {
$comment_author = stripslashes($comment->comment_author);
$comment_content = strip_tags($comment->comment_content);
$comment_content = stripslashes($comment_content);
$comment_excerpt =substr($comment_content,0,50);
$comment_excerpt = u_utf8_trim($comment_excerpt);
$permalink = get_permalink($comment->ID). »#comment-« .$comment->comment_ID;
$output .= $before . ‘<a href="' . $permalink . '" title="View the entire comment by ' . $comment_author . '"><strong>‘ . $comment_author . ‘</strong>: ‘ . $comment_excerpt . ‘…</a>‘ . $after;
}
echo $output;
}
function u_utf8_trim($str) {
$len = strlen($str);
for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ‘ ‘.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}
function wp_get_archives_custom($args = ») {
global $wpdb, $wp_locale;
$defaults = array(
‘type’ => ‘monthly’, ‘limit’ => »,
‘format’ => ‘html’, ‘before’ => »,
‘after’ => », ‘show_post_count’ => false
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
if ( » == $type )
$type = ‘monthly’;
if ( » != $limit ) {
$limit = absint($limit);
$limit = ‘ LIMIT ‘.$limit;
}
// this is what will separate dates on weekly archive links
$archive_week_separator = ‘–’;
// over-ride general date format ? 0 = no: use the date format set in Options, 1 = yes: over-ride
$archive_date_format_over_ride = 0;
// options for daily archive (only if you over-ride the general date format)
$archive_day_date_format = ‘Y/m/d’;
// options for weekly archive (only if you over-ride the general date format)
$archive_week_start_date_format = ‘Y/m/d’;
$archive_week_end_date_format = ‘Y/m/d’;
if ( !$archive_date_format_over_ride ) {
$archive_day_date_format = get_option(‘date_format’);
$archive_week_start_date_format = get_option(‘date_format’);
$archive_week_end_date_format = get_option(‘date_format’);
}
//filters
$where = apply_filters(‘getarchives_where’, « WHERE post_type = ‘post’ AND post_status = ‘publish' », $r );
$join = apply_filters(‘getarchives_join’, « », $r);
if ( ‘monthly’ == $type ) {
$query = « SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC $limit »;
$key = md5($query);
$cache = wp_cache_get( ‘wp_get_archives’ , ‘general’);
if ( !isset( $cache[ $key ] ) ) {
$arcresults = $wpdb->get_results($query);
$cache[ $key ] = $arcresults;
wp_cache_add( ‘wp_get_archives’, $cache, ‘general’ );
} else {
$arcresults = $cache[ $key ];
}
if ( $arcresults ) {
$afterafter = $after;
foreach ( $arcresults as $arcresult ) {
$url = get_month_link($arcresult->year, $arcresult->month);
$text = sprintf(__(‘%1$s %2$d’), $wp_locale->get_month($arcresult->month), $arcresult->year);
if ( $show_post_count )
$after = ‘ (‘.$arcresult->posts.’)’ . $afterafter;
$output .= get_archives_link($url, $text, $format, $before, $after);
}
}
}
return $output;
}
?>Puis j’ai cherché à faire la modification dans sidebar.php en rajoutant :
<div id=”sidebar”>
<ul>
<?php if ( !function_exists(’dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
<?php endif; ?>
</ul>
</div>Mais pourtant ça ne fonctionne pas.
Comme je pense que le soucis vient de ma sidebar, je vous laisse le code ci-dessous.
Pour info, je souhaiterais widgetiser UNE SEULE zone de ma sidebar et ainsi conserver les autres parties de ma sidebar en dur.<form action="<?php bloginfo('url'); ?> » method= »get »>
<div id="search">
<div id="search_image"></div>
<input type="text" class="s_input" name="s" value="Entrez votre recherche ici .." />
<input type="submit" class="s_submit" name="s" value="" />
</div>
</form>
<div id="rss">
<p id="rss_image"></p>
<p class="first"><a href="<?php bloginfo('rss2_url'); ?>« >S’abonner au flux RSS</a></p>
<p class="second"><a href="#">S’abonner au flux RSS par mail</a></p>
</div>
<div class="widget">
<h3>Espace vidéos</h3>
<p class="text" style="text-align:center;">
<img src="<?php bloginfo('template_directory');?>/images/video.gif » alt= »video » />
</p>
</div>
<div class="widget">
<h3> Recherche de vidéos par tags</h3>
<p class="text" ><?php wp_tag_cloud(''); ?></p>
</div>
<div class="widget">
<h3>Derniers commentaires</h3>
<ul>
<?php u_get_recent_comments(7); ?>
</ul>
</div>
<div id="widget_wrap">
<!-- Start WIDGETWRAP -->
<div class="left">
<div class="right">
<div class="widget">
<h3>A voir aussi</h3>
<div class="widget">
<table width="273" style="width:273px; margin:0 auto;">
<tr>
<td style="padding:0 0 10px 0;"><a href="http://localhost/poitoofm/"><img src="<?php bloginfo('template_directory');?>/images/logo-poitoo-fm.png » alt= »Poitoo FM » /></a></td>
</tr>
<tr>
<td><a href="http://www.wpthemedesigner.com"><img src="<?php bloginfo('template_directory');?>/images/sponsor.gif » alt= »Free WordPress Themes » /></a></td>
<td>
</table>
</div>
</div>
<div class="widget">
<h3>Administration</h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="http://www.wordpress.org/">WordPress</a></li>
<?php wp_meta(); ?>
<li><a href="http://validator.w3.org/check?uri=referer">XHTML</a></li>
<li><a href="<?php bloginfo('rss2_url'); ?> » title= »<?php _e('Syndicate this site using RSS'); ?>« ><?php _e('<abbr title="Really Simple Syndication">RSS</abbr>‘); ?></a></li>
<li><a href="<?php bloginfo('comments_rss2_url'); ?> » title= »<?php _e('The latest comments to all posts in RSS'); ?>« ><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>‘); ?></a></li>
<?php wp_meta(); ?>
</ul>
</div>
</div>
<div class="c"></div>
<!-- End WIDGETWRAP -->
</div>
</div>Merci d’avance !
25 août 2008 à 11 h 18 min #643178Bonjour,
Dans functions.php, le code suivant permet de déclarer un widget dans la Sidebar :
‘sidebar’,
‘before_widget’ => ‘<div id="%1$s" class="widget_sidebar %2$s">‘,
‘after_widget’ => ‘</div>‘,
‘before_title’ => ‘<h2 class="widgettitle">‘,
‘after_title’ => ‘</h2>‘,
));
?>Dans sidebar.php, tu déclares le widget *après* les autres éléments :
Ainsi, quand tu ajouteras des widgets par glisser-déplacer, tes éléments ne seront pas affectés : les widgets se placeront dessous.
Cordialement,
V.
25 août 2008 à 12 h 07 min #643179Merci ! ça à fonctionné cette fois-ci!
25 août 2008 à 12 h 30 min #643180C’était trop beau pour être vrai …
Oui ça fonctionne dans ma sidebar, mais maintenant j’ai un message d’erreur qui s’affiche un peu partout. Et les pages ne s’affichent plus.
Le message d’erreur :
Warning: Cannot modify header information – headers already sent by (output started at /homepages/13/d254381356/htdocs/wp-content/themes/Funkyzine_FR/functions.php:1) in /homepages/13/d254381356/htdocs/wp-includes/pluggable.php on line 770
A quoi est-ce dû ?
EDIT
C’est l’encodage de mes fichiers sidebar.php et functions.php que je devais modifier et tout est rentré dans l’ordre !
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.