Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
j'ai un petit problème avec un plugin wordpress et comme je n'ai pas réussi à avoir de réponse sur les forums dédiés et sur le site du créateur du plugin, je pose la question ici (ça n'a rien à voir avec le moteur wordpress, il semblerait que ce soit juste un php mal fagotté pour ce que j'en sais).
à la recherche d'un plugin qui me permettrait d'afficher tous mes commentaires sur une page à part, j'ai réussi à dégotter "comments-status" qui répond à mes attentes...sauf que le mode d'emploi est en chinois (site http://blog.chweng.idv.tw/wordpress/com … ment-79929 quand ça veut bien fonctionner). Bon, ce n'est pas très compliqué, les instructions sont en php, on devine ce qu'il faut copier dans la sidebar pour obtenir ce que l'on veut.
Sauf que moi, je voudrai que ça apparaisse dans une page et donc je copie le code qui semble convenir
<?php require(dirname(__FILE__).'/wp-blog-header.php'); ?>
<?php get_header(); ?>
<div id="content" class="narrowcolumn">
<h2>評論列表</h2>
<?php comments_archives('comment'); ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>dans un fichier "touslescommentaires.php" que j'appelle par un bête lien dans ma sidebar. Sauf que ça ne marche pas tout à fait comme espéré. La page d'accueil OK, on clique sur le lien de la page 2 OK, on clique sur le lien de la page 3... et là, au lieu d'avoir
http://li.an.free.fr/blog/touslescommentaires.php?page=3
j'obtiens
http://li.an.free.fr/blog/touslescommentaires.php?page=2?page=3
(à chaque lien cliqué, le numéro de la page se rajoute derrière le lien déjà affiché au lieu de remplacer le numéro précédent).
Démo ici http://li.an.free.fr/blog/touslescommentaires.php?
La version anglaise du plugin est chopable là http://li.an.free.fr/comments-statusen.zip
mais je vous mets quand même le code...
<?php
/*
Plugin Name: Comments Status
Plugin URI: http://blog.chweng.idv.tw/wordpress/comments-status/
Description: Counts the total number of comments and layout a comments list in a clean form.
Version: 0.2
Author: C.H.Weng
Author URI: http://www.chweng.idv.tw/
*/
$numsperpage = 100;
if (isset($_GET['page'])) {
$curpage=$_GET['page'];
} else {
$curpage=1;
}
function comments_count() {
global $wpdb,$tablecomments,$tableposts;
$comnum=$wpdb->get_var("SELECT COUNT(ID) FROM $tableposts,$tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND post_status IN ('publish','static') AND $wpdb->comments.comment_approved='1' AND $wpdb->comments.comment_type=''");
return $comnum;
}
function trackbacks_count() {
global $wpdb,$tablecomments,$tableposts;
$comnum=$wpdb->get_var("SELECT COUNT(ID) FROM $tableposts,$tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND post_status IN ('publish','static') AND $wpdb->comments.comment_approved='1' AND $wpdb->comments.comment_type IN ('trackback','pingback')");
return $comnum;
}
function comments_archives($type = 'comment') {
global $wpdb,$comment,$tablecomments,$tableposts;
global $numsperpage,$curpage;
if ($type=='trackback') {
$comnum=trackbacks_count();
} else {
$comnum=comments_count();
}
if (($comnum/$numsperpage)>intval($comnum/$numsperpage)) {
$maxpage=intval($comnum/$numsperpage)+1;
} else {
$maxpage=intval($comnum/$numsperpage);
}
if ($curpage<1 || $curpage!=intval($curpage) || $maxpage<$curpage) {
header('Location: '.$_SERVER['PHP_SELF']);
}
$offset=($curpage-1)*$numsperpage;
$query="SELECT ID,comment_ID,comment_author,comment_author_url,comment_date,comment_content,post_title FROM $tableposts,$tablecomments WHERE $tableposts.ID=$tablecomments.comment_post_ID AND post_status IN ('publish','static') AND $wpdb->comments.comment_approved='1'";
if ($type=='trackback') {
$query.=" AND $wpdb->comments.comment_type IN ('trackback','pingback')";
} else {
$query.=" AND $wpdb->comments.comment_type=''";
}
$query.=" ORDER BY comment_ID DESC LIMIT $offset,$numsperpage";
$comments=$wpdb->get_results($query);
echo '<p style="text-align: center;">';
if ($maxpage>1) {
if ($curpage>3) {
echo '[<a href="'.$_SERVER['REQUEST_URI'].'?page=1">Première page</a>] …';
}
for ($i=($curpage-2); $i<=($curpage+2); $i++) {
if ($i>=1 && $i<=$maxpage) {
echo ' [';
if ($i==$curpage) {
echo $i;
} else {
echo '<a href="'.$_SERVER['REQUEST_URI']."?page=$i\">$i</a>";
}
echo '] ';
}
}
if ($maxpage>($curpage+2)) {
echo '… [<a href="'.$_SERVER['REQUEST_URI']."?page=$maxpage\">dernière page</a>] ";
}
}
echo "Il y a $comnum commentaires, vous êtes à la page $curpage sur $maxpage au total .</p>";
foreach ($comments as $comment) {
$post_title=htmlspecialchars(stripslashes($comment->post_title));
if($post_title!=$cache_post_title) {
echo '<p><a href="'.get_permalink($comment->ID)."\">$post_title</a></p>";
}
echo '<blockquote>'.apply_filters('comment_text',apply_filters('get_comment_text',$comment->comment_content)).'<p>Commentaire écrit par '.get_comment_author_link().' @ '.get_comment_date().' '.get_comment_time().'</p></blockquote>';
$cache_post_title=$post_title;
}
}
?>Si quelqu'un est curieux de me corriger ça, je l'en remercie d'avance...
Hors ligne