Michel Vuijlsteke's weblog

Tales of Drudgery & Boredom.

Toch nog PHP

…en zo kwam er vandaag alsnog PHP aan te pas. Blijkbaar zit er in WordPress geen standaardfunctie om de laatste x commentaren te tonen.

In MovableType is dat simpelweg

<MTComments lastn="15" sort_order="descend">
  <p>
    <MTCommentEntry>
      <a href="<$MTEntryPermalink$>#c<$MTCommentID$>">
        <$MTCommentAuthor$>
      </a> over
      <a href="<$MTEntryPermalink$>">
        <$MTEntryTitle generate="1"$>
      </a>
    </MTCommentEntry>
  </p>
</MTComments>

Maar niet standaard WP. Enfin, ik dus wat gezoch op tinternet, en dan kom je al meteen op allerlei plugins die vanalles en de pompsteen doen. Terwijl ik hoegenaamd niet zoveel nodig heb.

Dus dan maar zelf gedaan, en da’s dan standaard-PHP dus:

global $wpdb;

$comments = $wpdb->get_results("SELECT ID, comment_ID, comment_author, post_title FROM $wpdb->comments LEFT JOIN $wpdb->posts ON $wpdb->posts.ID=$wpdb->comments.comment_post_ID WHERE post_status = 'publish' AND comment_approved = '1' ORDER BY comment_ID DESC LIMIT 15");

foreach ($comments as $comment) {
  echo "<p>".$comment->comment_author.
       " over ".$comment->post_title."</p>";
}

Heh. Nu nog een permalink te pakken krijgen. En dat zal, vrees ik, niet zo simpel zijn.

Met de ingebouwde .htaccess-generator komen er links uit als

  • http://blog.vuijlsteke.be/2005/10/links-for-2005-10-29.html
  • http://blog.vuijlsteke.be/2005/10/today-i-are-been-mostly-listening-to.html
  • http://blog.vuijlsteke.be/2005/10/naam-in-japanse-tekens-voor-tattoo.html

terwijl de equivalente links bij TypePad zijn:

Godver. Typepad doet een vervanging van alle aardige tekens door _, trunceert het resultaat tot 15 tekens, en voegt er indien nodig _[volgnummer] achter. Maar dat wordt dus nergens bijgehouden. En het kan ook niet gereconstrueerd worden uit de database.

Enige manier om het te achterhalen, is de fecking gegenereerde files allemaal te downloaden. Dus:

wget --mirror -w 1 -p http://blog.zog.org

en dan moet ik nog eens een man ls doen om een lijst te krijgen van alle files, in de vorm van een dir /b /r *.html, maar dan in unixlingo, dus zoiets:

/2005/10/filenaam1.html
/2005/10/filenaam2.html
/2005/10/filenaam3.html

en dan vrees ik dat ik zal moeten alles in een grote excel-file smijten en één voor één de permalinks juist zetten in de WordPress-database.

Tenzij iemand een beter idee heeft op het internet, natuurlijk. Ik zal nog eens zoeken.

5 Comments

  1. Kunt ge niet ergens redirects laten genereren? In MT kunt ge bvb zelf templates aanmaken, en zo heb ik destijds mijn .htaccess gemaakt toen ik van http://www.volume12.net/blog/ naar blog.volume12.net ben overgeschakeld.

    Bijvoorbeeld:

    RedirectMatch permanent /12/2004_(.*).htm$ http://blog.volume12.net/12/2004/$1/

    en dat ging via

    Redirect Permanent /[$MTArchiveCategory dirify=”1″$]/ http://blog.volume12.net/c/%5B$MTArchiveCategory dirify=”1″$]/

    ([ vervangen door kleiner dan, en ] door groter dan, maar het werd tegenegehouden door typepad.)

    Mits wat aanpassingen kunt ge die eerste $MTArchiveCategory dirify=”1″$ vervangen door uw permalink en de tweede $MTArchiveCategory dirify=”1″$ door de titel-met-streepkes+.html

  2. Die plugins zijn nochtans handig denk ik… Het enige probleem is dat er inderdaad heel veel zijn, en dat het uitproberen en uitzoeken wat tijd kost.

    De php code snippet die je zelf schreef loopt het risico dat hij bij de volgende upgrade niet meer werkt, bv als het db formaat iets wijzigt. Geen probleem voor die ene kleine aanpassing, maar vele kleine aanpassingen stapelen zich op tot een heuse upgrade nachtmerrie (maar dat hoef ik jou niet te vertellen)…
    Je hoort je aan de WordPress API en in-plug-conventies te houden, met een beetje geluk blijven die stabiel: http://codex.wordpress.org/Writing_a_Plugin

    De “Recent comments plugin” waar ik heel tevreden van ben is http://dev.wp-plugins.org/wiki/GetRecentComments , ik heb’m hier besproken:
    http://pascal.vanhecke.info/2005/07/02/wordpress-plugins-wysiwyg-editor-rss-links-recent-comments

  3. Ik denk dat dit is wat je zoekt:
    http://blog.jodies.de/archiv/2004/11/13/recent-comments/

    Eenvoudig te installeren. Alleen de html code die het uitspuwt is niet erg elegant. Daar is wat werk aan.

  4. @bruno: het zou moeten kunnen, ’t is waar. Ik zal nog eens kijken. Dan. Eens. :)

    @pascal: ach ja, in ’t ideaal geval hé. Ik zal numeteen die plugin eens uit gaan checken zie.

  5. @pascal: grr.

    Fatal error: Cannot redeclare kjgrc_subpage_gravatar() (previously declared in wp-content/plugins/get-recent-comments.php:23) in wp-content/plugins/get-recent-comments.php on line 63

    Zucht.

Zeg uw gedacht