我已經在wordpress(後端)中使用jQuery創建了5星評級系統插件。星級值也在更新後發佈元表。如果我給了一個帖子3星級並更新頁面,該值將存儲在後元,但更新頁面後,評級將不會顯示。所以我的問題是如何在更新頁面之後保存這些值直到我們手動編輯星級評分。即使在更新頁面後,如何保持星級評分
<?php
/* Plugin Name: Star Rating
* Version: 1.0
*/
class starrating{
public function __construct(){
add_action('add_meta_boxes',array($this,'my_meta'));
add_action('admin_enqueue_scripts',array($this ,'starscript'));
add_action('save_post', array($this,'save_field'));
}
public function my_meta()
{
add_meta_box(
'my_custom_meta',
'Created By',
array($this,'my_meta_box_mes'),
'a_z',
'side',
'low'
);
}
public function save_field($post_id)
{
update_post_meta($post_id,'starrating',$_POST['rating']);
}
public function my_meta_box_mes()
{
?>
<label>Please Rate Your Ratings !!</label>
<p>
<input type="hidden" name="rating" id="rating" />
<ul class="rating" onMouseOut="resetRating();">
<li name="star" value="one" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">★</li>
<li name="star" value="two" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">★</li>
<li name="star" value="three" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">★</li>
<li name="star" value="four" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">★</li>
<li name="star" value="five" onmouseover="highlightStar(this);" onmouseout="removeHighlight();" onclick="addRating(this);">★</li>
</ul>
</p>
<?php
}
public function starscript(){
wp_enqueue_script('star_id',content_url() . '/plugins/star_rating/js/starrating.js');
wp_enqueue_script('jquery_id', 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js');
wp_enqueue_style('styl_id',content_url() . '/plugins/star_rating/css/star.css');
}
}
$star=new starrating();
?>
非常感謝!我也制定了一個工作得很好的解決方案。但感謝兄弟的幫助 – Jackson