![圹ç«ã€WordPressã®10ã®ã³ã¡ã³ã¿ãªãŒããªã㯠10 WordPress](https://habrastorage.org/getpro/geektimes/post_images/569/d41/584/569d415843bc75c16e27cac3fac250ca.jpg)
å€ãã®ããã°ã§ã¯ãã³ã¡ã³ãã»ã¯ã·ã§ã³ãå ¬ç¶ãšç¡èŠããŠããŸãã ããããã³ã¡ã³ãã¯èè ãšèªè ã®çžäºäœçšã«éããªããããããã¯æ ¹æ¬çã«ééã£ãŠããŸãã ãã®èšäºã§ã¯ãããã°ã®ã³ã¡ã³ãã»ã¯ã·ã§ã³ãå®éã«ãµããããã¬ãã«ã«å°éããã®ã«åœ¹ç«ã€10ã®åªãããã³ããšç§å¯ãå ±æããŸãã
1.ã³ã¡ã³ãã®ã¢ã¯ã·ã§ã³ãªã³ã¯ãäœæããŸã
![ã³ã¡ã³ãã®ã¢ã¯ã·ã§ã³ãªã³ã¯ãäœæãã](https://habrastorage.org/getpro/geektimes/post_images/ada/61f/6f0/ada61f6f05c006b7a4b41f566721e88a.png)
åé¡ã å ¬éåã«ã³ã¡ã³ãã®æ¿èªãå¿ é ã§ããã«ãããããããäžéšã®ãšã³ããªã¯åžžã«ç·šéãåé€ããŸãã¯ã¹ãã ãšããŠããŒã¯ããå¿ èŠããããŸãã ããã©ã«ãã§ã¯ãWordPressã¯ã³ã¡ã³ãã®ãç·šéããªã³ã¯ãæäŸãïŒãedit_comment_linkïŒïŒãé¢æ°ã䜿çšïŒããåé€ããŸãã¯ãã¹ãã ããæäŸããŸããã è¿œå ããããšããå§ãããŸãã
解決çã æåã«ãé¢æ°ãäœæããå¿ èŠããããŸãã 以äžã®ã³ãŒãããfunctions.phpããã¡ã€ã«ã«è²Œãä»ããŸãã
function delete_comment_link($id) {
if (current_user_can('edit_post')) {
echo '| <a href="'.admin_url("comment.php?action=cdc&c=$id").'">del</a> ';
echo '| <a href="'.admin_url("comment.php?action=cdc&dt=spam&c=$id").'">spam</a>';
}
}
ãfunctions.phpããã¡ã€ã«ãä¿åãããããcomments.phpããéãããDeleteãããã³ãSpamããªã³ã¯ã衚瀺ãããå Žæã«æå®ãããã³ãŒããè¿œå ããŸãã äž¡æ¹ãšãã³ã¡ã³ãã«ãŒãã«å ¥ãå¿ èŠããããŸãã ã»ãšãã©ã®ãããã¯ã§ã¯ãé¢æ°ãedit_comment_linkïŒïŒããæäŸãããŠããŸãã ãã®å Žåãã³ãŒãã¯ãã®çŽåŸã«è¿œå ãããŸãã
delete_comment_link(get_comment_ID());
ã³ãŒãåââæã ãŸã第äžã«ããã¡ããããŠãŒã¶ãŒãã³ã¡ã³ããç·šéããæš©éãæã£ãŠãããšç¢ºä¿¡ããŠããŸãã 確èªåŸãã³ã¡ã³ããåé€ããããã¹ãã ãšããŠããŒã¯ãããã§ãããªã³ã¯ã衚瀺ãããŸãã ããã°ç®¡çè ã®URLãååŸã§ãããadmin_urlïŒïŒãé¢æ°ã«æ³šæããŠãã ããã
2.ã³ã¡ã³ããããã©ãã¯ããã¯ãåé¢ãã
![ã³ã¡ã³ããããã©ãã¯ããã¯ãåé¢ãã](https://habrastorage.org/getpro/geektimes/post_images/e16/866/5b8/e168665b8e60b227feb7d1d475411c06.png)
åé¡ã é²é³ã«ãã©ãã¯ããã¯ãå€ãããŸããïŒ å人çã«ã¯ãã¯ãã äžæ¹ã§ãèªè ã¯ä»ã®ããã°ã®ã©ã®èšäºãããªãã®èšäºã«ãªã³ã¯ããŠããããèŠãããšãã§ããã®ã§çŽ æŽãããã§ãã äžæ¹ããã®æ°ãå€ããããšãè°è«ãè¿œãããšãé£ãããªããŸãã ãã¡ããããã®ç¶æ³ã§ã¯ãç¹ã«WordPress 2.7ã§æäŸããããè¿ä¿¡ãæ©èœã䜿çšãããŠããªãå Žåãã³ã¡ã³ããããã©ãã¯ããã¯ãåé¢ããããšã¯çã«ããªã£ãŠããŸãã
解決çã 件åãæ€çŽ¢ããŠããã¡ã€ã«ãcomments.phpããç·šéããŸãã 次ã®ãããªã³ã¡ã³ãã«ãŒããèŠã€ããŸãã
foreach ($comments as $comment) : ?>
// Comments are displayed here
endforeach;
次ã«ã以äžã®ã³ãŒãã«çœ®ãæããŸãã
<ul class="commentlist">
<?php //Displays comments only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>
<li>//Comment code goes here</li>
<?php }
endforeach;
</ul>
<ul>
<?php //Displays trackbacks only
foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php }
endforeach;
</ul>
ã³ãŒãåââæã ååãšããŠãè€éãªããšã¯ãŸã£ãããããŸããã é¢æ°ãget_comment_typeïŒïŒãã¯ãã¿ã€ã-éåžžã®ã³ã¡ã³ããŸãã¯ãã©ãã¯ããã¯ã瀺ããŸãã 2ã€ã®HTMLãªã¹ããäœæããã°ååã§ãã1ã€ç®ã¯éåžžã®ã³ã¡ã³ãã§ã2ã€ç®ã¯ãã©ãã¯ããã¯ã§åããŸãã
3.ã³ã¡ã³ãå ã®HTMLãªã³ã¯ãåé€ãã
![ã³ã¡ã³ãå
ã®HTMLãªã³ã¯ãåé€ãã HTML-](https://habrastorage.org/getpro/geektimes/post_images/dd4/758/af7/dd4758af7f1e08715b3614df61338abd.png)
åé¡ã ããã¬ãŒã¯åœŒãã®çºæ¡ã宣äŒããæ©äŒãéãããšã¯æ±ºããŠãªããã¹ãããŒã¯ãŸã 姿ãæ¶ããŠããŸããã ç§ã¯ãã€ããã³ã¡ã³ãã«å«ãŸããä¿¡ããããªãã»ã©ã®æ°ã®ãªã³ã¯ã«ã質åãšã¯ã»ãšãã©é¢ä¿ããªãããšã«ãã€ãã²ã©ãæ©ãŸãããŠããŸãã ããã©ã«ãã§ã¯ã WordPressã®ã³ã¡ã³ãURLã¯ãªã³ã¯ã«å€ãããŸãã 幞ããªããšã«ãç§ã«å£ããªããªã³ã¯ã«ããããããŠãã人ã¯ãããä¿®æ£ã§ããŸãã
解決çã ãfunction.phpããã¡ã€ã«ãéããŠã以äžã®ã³ãŒãã貌ãä»ããŠãã ããïŒ
function plc_comment_post( $incoming_comment ) {
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
function plc_comment_display( $comment_to_display ) {
$comment_to_display = str_replace( ''', "'", $comment_to_display );
return $comment_to_display;
}
add_filter('preprocess_comment', 'plc_comment_post', '', 1);
add_filter('comment_text', 'plc_comment_display', '', 1);
add_filter('comment_text_rss', 'plc_comment_display', '', 1);
add_filter('comment_excerpt', 'plc_comment_display', '', 1);
ãã¡ã€ã«ãä¿åããåŸãã³ã¡ã³ãå ã®ãªã³ã¯ãä»ã®ç¡é¢ä¿ãªHTMLã¹ããããã«ã¡ã³ã¿ã«ã«å¥ããåããããšãå¿ããªãã§ãã ããã
ã³ãŒãåââæã æåã«ãHTMLæåãHTMLãªããžã§ã¯ãã«çœ®ãæãã2ã€ã®é¢æ°ãäœæããŸããã ãã®åŸã匷åãªé¢æ°ãadd_filterïŒïŒãã䜿çšããŠãæ°ããäœæããã2ã€ã®é¢æ°ã«ã³ã¡ã³ããåŠçããããã®æšæºã®WordPressé¢æ°ãæ·»ä»ããŸãã ããã«ãããè¿œå ããããã¹ãŠã®ã³ã¡ã³ãã§ãHTMLã³ã³ããŒãã³ãã確å®ã«é€å€ãããŸãã
4.ã³ã¡ã³ãã«Twitterã¢ãã¿ãŒãè¿œå ãã
![Twitterã¢ãã¿ãŒãã³ã¡ã³ãã«è¿œå ãã Twitter](https://habrastorage.org/getpro/geektimes/post_images/162/db3/747/162db3747ed1fc099eeb6f3d6d6b89e6.png)
åé¡ã ããã¬ãŒã«ãšã£ãŠãTwitterãããã¯ãŒã¯ã¯ãèªåã®ããã°ãæ®åããã仲éã®ããã¬ãŒã圌ãã®èŽè¡ãšé£çµ¡ãåãç¶ããããšãã§ãããããéåžžã«äŸ¿å©ã§ãã Twitterãããã¯ãŒã¯ã¯éåžžã«äººæ°ããããããã°ããŒãã«ã¢ãã¿ãŒïŒã°ã©ãã¿ãŒïŒã®ä»£ããã«ãTwitterã¢ãã¿ãŒã䜿çšããŠã³ã¡ã³ããæ確ã«ç€ºãããšãã§ããŸãã
解決çã
1.æåã«ãããããæ©èœãã¡ã€ã«ãååŸããŸã ã
2.次ã«ãããŒããã©ã€ãã§ã¢ãŒã«ã€ãã解åãããtwittar.phpããã¡ã€ã«ãéããŸãã
3.ãã¹ãŠã®ã³ã³ãã³ããéžæããããããã°ã«é¢é£ãããã¡ã€ã«ãfunctions.phpãã«æ¿å ¥ããŸãã
4.æåŸã®ã¹ãããã¯ããã¡ã€ã«ãcomments.phpããéããã³ã¡ã³ãã®ã«ãŒããèŠã€ããããšã§ãã
5.次ã®è¡ãã«ãŒãã«æ¿å ¥ããŸãã
<?php twittar('45', 'default.png', '#e9e9e9', 'twitavatars', 1, 'G'); ?>
ã³ãŒãåââæã æ°ãæåã®Smashing Magazine www.smashingmagazine.comã§ãTwitterã¢ãã¿ãŒãWordPressããã°ã«çµã¿èŸŒãããã®çŽ æŽãããTwittarãœãããŠã§ã¢ã¢ãžã¥ãŒã«ãå°å ¥ãããŸããã WpRecipes.comã®èªè ãã倧éã®ãã£ãŒãããã¯ãåãåã£ãã®ã§ãç§ã¯ãœãããŠã§ã¢ã¢ãžã¥ãŒã«ãã³ãŒãã«å€ããããšã«ããŸãã-ããã奜ã人ã®ããã«ã
ãã¡ããããfunction.phpããã¡ã€ã«ã®å 容ãç·šéãã代ããã«ãåã«ã¢ãã€ã³ãã€ã³ã¹ããŒã«ããããšãã§ããŸã-éžæã¯å®å šã«ããªã次第ã§ãã
5.èè ã®ã³ã¡ã³ããã¹ã¿ã€ã«ã§åŒ·èª¿ããŸãã
![èè
ã®ã³ã¡ã³ããã¹ã¿ã€ã«ã§åŒ·èª¿ããŸã](https://habrastorage.org/getpro/geektimes/post_images/a72/d4c/ebc/a72d4cebc64d60febfa8b6567511c2d1.jpg)
åé¡ã å€æ°ã®ã³ã¡ã³ããå«ãæçš¿ã§ã¯ãç¹ã«WordPress 2.7ã«å®è£ ããããã¹ã¬ããã³ã¡ã³ããããªãŒã³ã¡ã³ãæ©èœãããã°ã«ãªãå Žåãèè ã®ã³ã¡ã³ããšåçãèŠã€ããã®ã¯å¿ ãããç°¡åã§ã¯ãããŸããã ãã ãããŸã æ¹æ³ããããŸããèè ã®ã³ã¡ã³ããå¥ã®ã¹ã¿ã€ã«ã§åŒ·èª¿è¡šç€ºããèªè ããã¹ãŠã®çãããã°ããèŠã€ããããããã«ããŸãã
解決çã
1.ãcomments.phpããã¡ã€ã«ãéããã³ã¡ã³ãã«ãŒããèŠã€ããŸãã
<?php foreach comment as $comment) { ?>
2.ãã®è¡ã®åŸã«ã次ã®ã¹ãããããæ¿å ¥ããŸãã
<?php
$isByAuthor = false;
if($comment->comment_author_email == get_the_author_email()) {
$isByAuthor = true;
}
?>
3.次ã«ãã³ã¡ã³ããè¡šãã³ãŒãå ã®è¡ãèŠã€ããŸãïŒãããã¯ã«ãã£ãŠç°ãªãå ŽåããããŸãïŒã
<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
4.次ã«ãèè ã®ã³ã¡ã³ãã®ã¯ã©ã¹ãauthorcommentããå°åºããå¿ èŠããããŸãã
<li class="<?php echo $oddcomment; ?> <?php if($isByAuthor ) {
echo 'authorcomment';} ?>" id="comment-<?php comment_ID() ?>">
5.äœæè ã®ã³ã¡ã³ãçšã®CSSã¯ã©ã¹ãäœæããããšã¯æ®ã£ãŠããŸãã ãstyle.cssããã¡ã€ã«ãéããã³ãŒãã¹ãããããããã«è²Œãä»ããŸãã å¿ èŠã«å¿ããŠãäŸã®è²ã眮ãæããŸãã
.authorcomment{
color:#fff;
font-weight:bold;
background:#068;
}
ã³ãŒãåââæã ææ¡ãããã³ãŒãã®åäœåçã¯ãã³ã¡ã³ããšã³ããªã®é»åã¡ãŒã«ã¢ãã¬ã¹ãšèè ã®ã¢ãã¬ã¹ã®æ¯èŒã«åºã¥ããŠããŸãã äžèŽããå Žåã$ isByAuthorã¯trueã«èšå®ãããŸãã ã³ã¡ã³ãã衚瀺ãããšããã$ isByAuthorãã®å€ããã§ãã¯ãããŸãã trueãè¿ããšãauthorcommentã¯ã©ã¹ãã³ã³ããã«è¿œå ãããŸãã
WordpressããŒãžã§ã³2.7以éã§ã¯ããã®ã¿ã¹ã¯ã¯ããåçŽã§ããã¯ã©ã¹ãcomment_classïŒïŒ;ããã³ã¡ã³ãDIVã«è¿œå ããã ãã§ããããã«ãããèªåã®æçš¿ãžã®ã³ã¡ã³ãã®å Žåã«ã¯ã©ã¹ãbypostauthorããèªåçã«è¿œå ãããŸãïŒNimaã«ç¹ã«æè¬ããŸãïŒïŒã
6.ã³ã¡ã³ãã®ç·æ°ãšå¹³åèšé²ã衚瀺ãã
![ã³ã¡ã³ãã®ç·æ°ãšå¹³åèšé²ã衚瀺ãã](https://habrastorage.org/getpro/geektimes/post_images/3fc/874/903/3fc8749032339402b608e3e020f5024a.png)
åé¡ã WordPressã³ã³ãœãŒã«ã«ã¯ãããã°ãåãåã£ãã³ã¡ã³ãã®ç·æ°ã«é¢ããæ å ±ããããŸãã ããããæ®å¿µãªãããå ¬éããã¡ã«ããºã ã¯ãããŸããã ç¹ã«ããã°ã«æœåšçãªåºåäž»åãã®ããŒãžãããå Žåãããã°ã®ã³ã¡ã³ãã®ç·æ°ãšãšã³ããªããšã®å¹³åæ°ã衚瀺ãããšéåžžã«äŸ¿å©ã§ãã
解決çã
<?php
$count_posts = wp_count_posts();
$posts = $count_posts->publish;
$count_comments = get_comment_count();
$comments = $count_comments['approved'];
echo "There's a total of ".$comments." comments on my blog, with an average ".round($comments/$posts)." comments per post.";
?>
ã³ãŒãåââæã ããŒãžã§ã³2.5ã«ååšãããwp_count_postsïŒïŒãé¢æ°ãšãget_comment_countïŒïŒãé¢æ°ã䜿çšãããšãWordPressããã°ã®æçš¿ãšã³ã¡ã³ãã®ç·æ°ãããããç°¡åã«ååŸã§ããŸãã ã¬ã³ãŒãã®ã³ã¡ã³ãã®å¹³åæ°ãèšç®ããã«ã¯ãåºæ¬çãªç®è¡æŒç®ãšãPHP roundïŒïŒãé¢æ°ã§ååã§ãããæŽæ°å€ãæäŸãããŸãã
7.æè¿ã®ã³ã¡ã³ãã®nçªç®ã®æ°ã衚瀺ãã
![æè¿ã®ã³ã¡ã³ãã®nçªç®ã®æ°ã衚瀺ãã n-](https://habrastorage.org/getpro/geektimes/post_images/eca/e20/ee1/ecae20ee1907cd1998f71f4a0556fcd7.jpg)
åé¡ã ããã©ã«ãã§ã¯ãWordPressã«ã¯ãæçš¿ã«å¯Ÿããæè¿ã®ã³ã¡ã³ããããã€ã§ã衚瀺ãããŠã£ãžã§ãããçšæãããŠããŸãã ããã¯ãã°ãããããšã§ããããŠã£ãžã§ããããªãå Žåã«åæ§ã®æ©èœãå¿ èŠã«ãªãããšããããŸãã
解決çã ç§å¯ã¯éåžžã«ç°¡åã§ããæåŸã«äœæãããã³ã¡ã³ãã®ç¹å®ã®æ°ã衚瀺ããå Žæã«ææ¡ãããã³ãŒãã貌ãä»ããŸãã è¡3ã«ç¹å®ã®æ°éãå«ããããã«ããŠãã ããïŒåŒãLIMIT SQLãã®åŸã«ïŒã
<?php
$pre_HTML ="";
$post_HTML ="";
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n<ul>";
foreach ($comments as $comment) {
$output .= "\n<li>".strip_tags($comment->comment_author) .":" . "<a href=\"" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "\" title=\"on ".$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;
?>
ã³ãŒãåââæã ããã§ã¯ã$ wpdbããªããžã§ã¯ãã䜿çšããŸãããä»åã¯get_resultsïŒïŒã¡ãœãããšçµã¿åãããŸãã WordPressããŒã¿ããŒã¹ããã³ã¡ã³ããåãåã£ããããforãã«ãŒãã䜿çšããŠã³ã¡ã³ããé åºä»ããããŠããªãHTMLãªã¹ãã«äœæããŸãã ãã©ã°ã¡ã³ãã®å é ã§åæåãããå€æ°$ pre_HTMLããã³$ post_HTMLã¯ãã³ã¡ã³ãã®ãªã¹ãã®ååŸã«ã©ã®ã³ã³ãã³ããæ¥ããã決å®ããŸãã
8.ã³ã¡ã³ãã¹ãã ãé¿ãã-ãã
![ã³ã¡ã³ãã¹ãã ã®åé¿ã¯ç°¡åã§ã â](https://habrastorage.org/getpro/geektimes/post_images/65d/1b1/ce3/65d1b1ce39da8eac36a257504e3d193d.jpg)
åé¡ã ã³ã¡ã³ãã¹ãã ã¯ããããé çã®çš®ã§ãã Akismetã¯è¯ã解決çã§ãããçãããã¡ãã»ãŒãžã«ãã©ã°ãç«ãŠãã®ã§ã¯ãªããã¹ãããŒãããã«ãããã¯ããŠã¿ãŸãããïŒ ææ¡ãããã³ãŒãã¯ãHTTPãªãã¡ã©ãŒãªã¯ãšã¹ãããããŒïŒãªã¯ãšã¹ãã®éä¿¡å ã®ããŒãžïŒãæ¢ããã³ã¡ã³ããæ£ãããªããå®çŸ©ãããŠããªãå Žåãã³ã¡ã³ããèªåçã«ãããã¯ããŸãã
解決çã 次ã®ã³ãŒãããfunctions.phpããã¡ã€ã«ã«è²Œãä»ããŸãã
function check_referrer() {
if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == ââ) {
wp_die( __('Please enable referrers in your browser, or, if you\'re a spammer, bugger off!') );
}
}
add_action('check_comment_flood', 'check_referrer');
å®éãããããã¹ãŠã§ãã ãã¡ã€ã«ãä¿åããããããã°ãã¹ãã ã«å¯Ÿããæ°ããã¬ãã«ã®ä¿è·ã«å°ããŸãã
ã³ãŒãåââæã ã³ãŒãã¯ãHTTPãªãã¡ã©ãŒãªã¯ãšã¹ãããããŒãªãã§ããã©ãŠã¶ãŒïŒéåžžã¯ãããïŒããã®ã³ã¡ã³ããæçš¿ãããªã¯ãšã¹ããèªåçã«æåŠããŸãã æ€èšŒã¯ãé å "PHP $ _SERVER []"ã䜿çšããŠå®è¡ãããŸãã ããããŒãå®çŸ©ãããŠããªããç¡å¹ãªå Žåãwp_dieé¢æ°ãåŒã³åºãããã¹ã¯ãªããã¯çµäºããŸãã
ãã®é¢æ°ã¯ãWordPressã«å®è£ ãããŠããé¢æ°ãcheck_comment_floodïŒïŒãã«æ·»ä»ãããŠããŸãã ãããã£ãŠãã³ã¡ã³ããæçš¿ããããã³ã«ããcheck_referrerïŒïŒãé¢æ°ã®åŒã³åºããå®è¡ãããããšã確èªã§ããŸãã
9. 2.7æªæºã®ããŒãžã§ã³ãšã®WordPressã®äºææ§ããµããŒãããŠããŸã
![2.7æªæºã®ããŒãžã§ã³ãšã®WordPressã®äºææ§ããµããŒãããŠããŸã WordPress 2.7](https://habrastorage.org/getpro/geektimes/post_images/57d/3ec/b2b/57d3ecb2be1fad3b62c52f477418fe4d.jpg)
åé¡ã ã»ãã®æ°ãæåã«ãªãªãŒã¹ãããWordPress 2.7ã®ãªãªãŒã¹ã§ã¯ãããªãŒåœ¢åŒã§è¡šç€ºããããŸããŸãªããŒãžã«è¡šç€ºã§ãããæ ¹æ¬çã«æ°ããã³ã¡ã³ãã·ã¹ãã ãå°å ¥ãããŸããã ããã¯éåžžã«äŸ¿å©ã§ãããå€ãã®ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãããŒãžã§ã³2.8ãŸãã¯å°ãªããšã2.7ã«ãŸã æŽæ°ããŠããªãããšãå¿ããªãã§ãã ããã ææ¡ãããã³ãŒãã¯ãæŽæ°ãæ°ã«ããªã人ã®ããã«å€ãæ©èœãä¿æããªãããããŒãžã§ã³2.7以éã®ãã¹ãŠã®ææè ã«æ°ããã³ã¡ã³ãã·ã¹ãã ã®å©äŸ¿æ§ãæäŸããŸãã
解決çã ãã®ããã«ã¯ã2ã€ã®ãã¡ã€ã«ãå¿ èŠã§ãã 1ã€ç®ã¯ãWordPress 2.7ã§ãµããŒããããŠããã³ã¡ã³ããcomments.phpããå«ããã¡ã€ã«ã§ãã 2ã€ç®ã¯ãWordPressã®ä»¥åã®ããŒãžã§ã³ãlegacy.comments.phpãçšã®ã³ã¡ã³ããã³ãã¬ãŒãã§ãã äž¡æ¹ã®ãã¡ã€ã«ã¯ããŒããã©ã«ããŒã«ä¿åãããŸãã
次ã®ã³ãŒãããfunctions.phpããã¡ã€ã«ã«è¿œå ããŸãã
<?php
add_filter('comments_template', 'legacy_comments');
function legacy_comments($file) {
if(!function_exists('wp_list_comments')) : // WP 2.7-only check
$file = TEMPLATEPATH.'/legacy.comments.php';
endif;
return $file;
}
?>
ã³ãŒãåââæã ãã®ã³ãŒãã¯ãæšæºé¢æ°ãcomments_templateãã«ãã€ã³ããããé¢æ°ãlegacy_commentsïŒïŒããäœæããŸãã WordPressããcomments_templateïŒïŒãã«ã¢ã¯ã»ã¹ãããã³ã«ããlegacy_commentsïŒïŒãé¢æ°ãå®è¡ãããŸãã ãwp_list_commentsïŒïŒãé¢æ°ããªãå Žåãã³ãŒãã¯ãcomments.phpãã§ã¯ãªããlegacy.comments.phpããèªåçã«ããŒãããŸãã
10.ç¹å®ã®æéã«æãã³ã¡ã³ãã®å€ããšã³ããªã衚瀺ãã
![ç¹å®ã®æéã®ã³ã¡ã³ããæãå€ãæçš¿ã衚瀺ãã](https://habrastorage.org/getpro/geektimes/post_images/3c0/5b5/263/3c05b52638fc707a8b76536f63fafc2f.png)
åé¡ã ã³ã¡ã³ãã®æ°ã¯ãããã°ã®äººæ°ã枬å®ããã®ã«æé©ãªæ¹æ³ã§ãããæã人æ°ã®ããæçš¿ããªã¹ãããããã®åªãããã£ã«ã¿ãŒã§ãã ããšãã°ãå æã®æã人æ°ã®ãããšã³ããªã®ãªã¹ãã衚瀺ãããªã©ããŠãæã人æ°ã®ãããšã³ããªãç¹å®ã®æéã«å¶éãããšããã§ãããã
解決çã æã人æ°ã®ãããšã³ããªãäžèŠ§è¡šç€ºããå Žæã«æšå¥šã³ãŒãã貌ãä»ããã ãã§ãã 3è¡ç®ã®æ¥ä»ãèªåã«é¢é£ããæ¥ä»ã«å€æŽããããšãå¿ããªãã§ãã ããã
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2009-01-01' AND '2009-02-01' ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
?>
<li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
<?php }
}
?>
</ul>
ã³ãŒãåââæã ãŸããã$ wpdbããªããžã§ã¯ãã䜿çšããŠãSQLã¯ãšãªãWordPressããŒã¿ããŒã¹ã«éä¿¡ããŸãã çµæãåãåã£ãåŸãåçŽãªPHPæŒç®åãforeachãã䜿çšããŠãäžå®æéã®æã人æ°ã®ããã¬ã³ãŒããé åºä»ããããŠããªãHTMLãªã¹ãã®åœ¢åŒã§è¡šç€ºããŸãã
å ã®èšäºïŒ 10ã®äŸ¿å©ãªWordPressã³ã¡ã³ãããã¯
èšäºã®ç¿»èš³ïŒ WordPressã§ã³ã¡ã³ããæäœããããã®10ã®äŸ¿å©ãªããªãã¯