Reputation: 4557
I am developing a shortcode for wordpress.
using the shortcode in word file as :
add_shortcode('LATEST_NOT_ROHIT','latest_notification_rohit');
function latest_notification_rohit()
{
include("shortcode.php");
}
in shortcode.php
file the code is as follow :
<div class='alert alert-info'>Latest Notifications</div>
<?php
global $wpdb;
$select_qury = "select * from `ln_category`";
$select_cat = $wpdb->get_results($select_qury);
foreach($select_cat as $select_cat)
{
echo "<h4>Latest Notifications For <span style='color:#800000'>".$select_cat->category."</span></h4>";
$cat_id = $select_cat->id;
$select_qury2 = "select * from `ln_notification` where `cat_id`='$cat_id'";
$select_notification = $wpdb->get_results($select_qury2);
?>
<table class="responsive display table table-bordered">
<tr><th>Sr No</th><th>Organisation</th><th>Post Name</th><th>No of Post</th><th>Qualification</th><th>Fees</th><th>Adervst Date</th><th>Application Start Date</th>
<th>Application Last Date</th><th>Status</th></tr>
<?php
$i=1;
foreach($select_notification as $select_notification)
{
$current_date = date('Y-m-d');
$start_date = $select_notification->start_date;
$last_date = $select_notification->last_date;
if($current_date < $start_date)
{
$remark = "<span style='color:green'>Form is about to start</span>";
}
elseif($current_date > $last_date)
{
$remark ="<span style='color:red'>Last Date is over</span>";
}
else
{
$remark = "Application is going on";
}
echo "<tr><td>$i</td><td>".$select_notification->organisation."</td><td>".$select_notification->post_name."</td><td>".$select_notification->no_of_post.
"</td><td>".$select_notification->qualification."</td><td>".$select_notification->fees."</td><td>".date('d-M-Y',strtotime($select_notification->adv_date))."</td><td>".date('d-M-Y',strtotime($start_date))."</td><td>".date('d-M-Y',strtotime($last_date))."</td><td>$remark</td></tr>";
$i++;
}
?>
</table>
<?php
}
?>
but when I am running this code in wordpress page/post then the content is displayed two times. The demo is at the front end
http://singhalrohitashv.com/latest-notification/
How can I resolve this problem ???
Upvotes: 0
Views: 2267
Reputation: 3663
I think problem is in your code, you have used two foreach loop.
$select_qury = "select * from `ln_category`";
$select_cat = $wpdb->get_results($select_qury);
Possibly it returning two category which let first foreach executing two time. And as your table just before the second foreach loop, even it has no record it will print second table. Please put condition to print the table if record is there.
Hope this help you to solve the issue.
Upvotes: 0
Reputation: 4880
add_shortcode('LATEST_NOT_ROHIT','latest_notification_rohit');
function latest_notification_rohit()
{
ob_start();
require_once("shortcode.php");
$data = ob_get_contents();
ob_end_clean();
return $data;
}
Would you please try above code?
Upvotes: 2
Reputation: 258
You are probably calling the latest_notification_rohit() function on one of the following files :
You might also be calling the content function twice for that page. Doing a search all for the_content() or latest_notification_rohit() might show you the places where the code is being called multiple times.
Upvotes: 0