Help! – I’m creating my first plugin
-
The approved method is through the wpdb class:
If you use that, you don’t need to know about the table prefix.
For the address, you’ll probably want to look at:
(I’m not a coder, but I have managed to throw together a plugin, and even a widget)
Thank you.
Now I have added input from the mentioned pages plus some intro.Now my plugin looks like this:
/* Plugin Name: bald-commentlist Plugin URI: http://wordpress.org/support/topic/188525 Description: This plugin shows an excerpt of the recent comments given in the blog with a link to the post and the name of the commenteer. Version: 0.1 Author: Boldt Author URI: none */ /* Copyright 2008 Boldt (email : none) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* Template Tag: Displays the most recently commented posts. e.g.: <?php bald_comments(10, 50); ?> this example will show an exerpt of the latest 10 comments, the exerpt is 50 letters */ ?> function bald-comment($no-comment,$exerpt-length) { // define no-comment and exerpt-length if not typed if ($no-comment =='') $nocomment= 10 else $nocomment=$no-comment; if ($exerpt-length=='') $exerpt=50 else $exerpt=$exerpt-length; // Open Database the wordpress way // not using mysql_connect("server", "username", "password") or die(mysql_error()); // Get data FROM comments is not the wordpress way $rows= $wpdb->query("SELECT comment_ID, comment_post_ID, comment_author, comment_content, comment_approved FROM comments ORDER BY comment_ID DESC LIMIT 10 WHERE comment_approved='1'"); // show data foreach ($rows as $row) { $tring='<a href="'.get_bloginfo ('url').'/?p='.$row[comment_post_ID]142.'#comment-'.$row[comment_ID].'">'.$row[comment_author].'</a>: '; if ($exerpt=0) {$tring.=$row[comment_content];} else {$tring.=substr($row[comment_content],0,$exerpt).'...';} $tring.= '<br />'; echo $tring; } }Later this week I will try out the plugin (unfortunately I have a job for bread and butter – this is only icing on the cake)
kind regards
Mikael Boldt
Now I have corrected some minor errors and my plugin looks now like this:
<?php /* Plugin Name: bald-commentlist Plugin URI: http://wordpress.org/support/topic/188525 Description: This plugin shows an excerpt of the recent comments given in the blog with a link to the post and the name of the commenteer. How to use the plugin: put this in your template: <?php bald_comments(10, 50); ?> Version: 0.2 Author: Boldt Author URI: none */ /* Copyright 2008 Boldt (email : none) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ function bald_comments($no_comment,$exerpt_length) { // Set default if no_comment and exerpt_length are not defined if ($no_comment=='') {$nocomment=10;} else {$nocomment=$no-comment;} if ($exerpt_length=='') {$exerpt=50;} else {$exerpt=$exerpt-length;} // Get data $rows= $wpdb->query("SELECT comment_ID, comment_post_ID, comment_author, comment_content, comment_approved FROM comments ORDER BY comment_ID DESC LIMIT 10 WHERE comment_approved='1'"); // show data foreach ($rows as $row) { $tring='<a href="'.get_bloginfo ('url').'/?p='.$row[comment_post_ID].'#comment-'.$row[comment_ID].'">'.$row[comment_author].': </a>'; if ($exerpt=0) {$tring.=$row[comment_content];} else {$tring.=substr($row[comment_content],0,$exerpt).'...';} $tring.= '<br />'; echo $tring; } } ?>But now I get following error message:
Fatal error: Call to a member function query() on a non-object in /home/www/ronnespejder.dk/wp-content/plugins/bald-comments.php on line 38
What is wrong?
Add
global $wpdb;Belowfunction bald_comments($no_comment,$exerpt_length)Done!
but now I get this:
Fatal error: Call to undefined function bald_comments() in /home/www/ronnespejder.dk/wp-content/themes/ddsPress/sidebar.php on line 83
Sorry forgot to active my plugin,
anyway, now I get this:
Warning: Invalid argument supplied for foreach() in /home/www/ronnespejder.dk/wp-content/plugins/bald-comments.php on line 42
Your SQL query is wrong
It should be:
"SELECT comment_ID, comment_post_ID, comment_author, comment_content, comment_approved FROM $wpdb->comments WHERE comment_approved='1' ORDER BY comment_ID DESC LIMIT 10"
The topic ‘Help! – I’m creating my first plugin’ is closed to new replies.
(@boldt)
17 years, 10 months ago
It is obvious very difficult to get other plugins to do what I want, so now I’m going to create my own.
My plugin shall show a list of recent comments – including comments to images given in the built-in [gallery].
So far I have now made this function:
Now I have 3 questions:
1) How do I open the WP database correct?
2) http://codex.wordpress.org/Writing_a_Plugin says: “Do not hardcode the WordPress database table prefix (usually “wp_”) into your plugins. Be sure to use the $wpdb->prefix variable instead. “
How do I do that?
3) Maybe others would like to use my plugin so I don’t want to hardcode the address, what is the address of my weblog wordpress style?
kind regards
Mikael Boldt