Sosyal sitelerin artmasıyla wordpress yazı kodlarıda bir hayli arttı. Tıpkı instagramda ki kalp şeklinde beğenme işlemini yazılarınızda alttaki işlemleri uygulayarak gösterebilirsiniz. Bu sayede yazılarınızı okunma ve yorum sayısından ziyade bu beğeni ile de ölçebilirsiniz. Kalbin gözükmesi için bu yazımdaki işlem olması gerekiyor. Kalp boyutuda aynı şekilde yazıdaki gibi büyütülebilir. (fa fa heart)
Temanızın css dosyasına ekleyin.
a.jm-post-like{font-weight:normal;display:inline-block;width:auto;font-size:13px;font-size:0.928571429rem;line-height:1.846153846;-moz-transition:all 0.3s ease-out 0.2s;-webkit-transition:all 0.3s ease-out 0.2s;-o-transition:all 0.3s ease-out 0.2s;}a.jm-post-like.liked{color:#da1b1b;}a.jm-post-like:hover,a.jm-post-like:active,a.jm-post-like:focus,a.liked:hover,a.liked:active,a.liked:focus{color:#000;}
Temanızın header.php dosyasına ekleyin.
<script type="text/javascript" src="https://www.bycaner.com/demolar/post-like.js"></script>
Temanızın functions.php dosyasına ekleyin. (yedek alarak işlem yapın.)
function like_scripts() {
wp_enqueue_script( ‘jm_like_post’, get_template_directory_uri().’/js/post-like.js’, array(‘jquery’), ‘1.0’, 1 );
wp_localize_script( ‘jm_like_post’, ‘ajax_var’, array(
‘url’ => admin_url( ‘admin-ajax.php’ ),
‘nonce’ => wp_create_nonce( ‘ajax-nonce’ )
)
);
}
add_action( ‘init’, ‘like_scripts’ );
/**
* (2) Add Fontawesome Icons
*/
function enqueue_icons () {
wp_register_style( ‘font-awesome’, get_template_directory_uri().’/fonts/font-awesome.min.css’ );
wp_enqueue_style( ‘icon-style’ );
}
add_action( ‘wp_enqueue_scripts’, ‘enqueue_icons’ );
/**
* (3) Save like data
*/
add_action( ‘wp_ajax_nopriv_jm-post-like’, ‘jm_post_like’ );
add_action( ‘wp_ajax_jm-post-like’, ‘jm_post_like’ );
function jm_post_like() {
$nonce = $_POST[‘nonce’];
if ( ! wp_verify_nonce( $nonce, ‘ajax-nonce’ ) )
die ( ‘Hata!’ );
if ( isset( $_POST[‘jm_post_like’] ) ) {
$post_id = $_POST[‘post_id’]; // post id
$post_like_count = get_post_meta( $post_id, “_post_like_count”, true ); // post like count
if ( is_user_logged_in() ) { // user is logged in
$user_id = get_current_user_id(); // current user
$meta_POSTS = get_user_option( “_liked_posts”, $user_id ); // post ids from user meta
$meta_USERS = get_post_meta( $post_id, “_user_liked” ); // user ids from post meta
$liked_POSTS = NULL; // setup array variable
$liked_USERS = NULL; // setup array variable
if ( count( $meta_POSTS ) != 0 ) { // meta exists, set up values
$liked_POSTS = $meta_POSTS;
}
if ( !is_array( $liked_POSTS ) ) // make array just in case
$liked_POSTS = array();
if ( count( $meta_USERS ) != 0 ) { // meta exists, set up values
$liked_USERS = $meta_USERS[0];
}
if ( !is_array( $liked_USERS ) ) // make array just in case
$liked_USERS = array();
$liked_POSTS[‘post-‘.$post_id] = $post_id; // Add post id to user meta array
$liked_USERS[‘user-‘.$user_id] = $user_id; // add user id to post meta array
$user_likes = count( $liked_POSTS ); // count user likes
if ( !AlreadyLiked( $post_id ) ) { // like the post
update_post_meta( $post_id, “_user_liked”, $liked_USERS ); // Add user ID to post meta
update_post_meta( $post_id, “_post_like_count”, ++$post_like_count ); // +1 count post meta
update_user_option( $user_id, “_liked_posts”, $liked_POSTS ); // Add post ID to user meta
update_user_option( $user_id, “_user_like_count”, $user_likes ); // +1 count user meta
echo $post_like_count; // update count on front end
} else { // unlike the post
$pid_key = array_search( $post_id, $liked_POSTS ); // find the key
$uid_key = array_search( $user_id, $liked_USERS ); // find the key
unset( $liked_POSTS[$pid_key] ); // remove from array
unset( $liked_USERS[$uid_key] ); // remove from array
$user_likes = count( $liked_POSTS ); // recount user likes
update_post_meta( $post_id, “_user_liked”, $liked_USERS ); // Remove user ID from post meta
update_post_meta($post_id, “_post_like_count”, –$post_like_count ); // -1 count post meta
update_user_option( $user_id, “_liked_posts”, $liked_POSTS ); // Remove post ID from user meta
update_user_option( $user_id, “_user_like_count”, $user_likes ); // -1 count user meta
echo “already”.$post_like_count; // update count on front end
}
} else { // user is not logged in (anonymous)
$ip = $_SERVER[‘REMOTE_ADDR’]; // user IP address
$meta_IPS = get_post_meta( $post_id, “_user_IP” ); // stored IP addresses
$liked_IPS = NULL; // set up array variable
if ( count( $meta_IPS ) != 0 ) { // meta exists, set up values
$liked_IPS = $meta_IPS[0];
}
if ( !is_array( $liked_IPS ) ) // make array just in case
$liked_IPS = array();
if ( !in_array( $ip, $liked_IPS ) ) // if IP not in array
$liked_IPS[‘ip-‘.$ip] = $ip; // add IP to array
if ( !AlreadyLiked( $post_id ) ) { // like the post
update_post_meta( $post_id, “_user_IP”, $liked_IPS ); // Add user IP to post meta
update_post_meta( $post_id, “_post_like_count”, ++$post_like_count ); // +1 count post meta
echo $post_like_count; // update count on front end
} else { // unlike the post
$ip_key = array_search( $ip, $liked_IPS ); // find the key
unset( $liked_IPS[$ip_key] ); // remove from array
update_post_meta( $post_id, “_user_IP”, $liked_IPS ); // Remove user IP from post meta
update_post_meta( $post_id, “_post_like_count”, –$post_like_count ); // -1 count post meta
echo “already”.$post_like_count; // update count on front end
}
}
}
exit;
}
/**
* (4) Test if user already liked post
*/
function AlreadyLiked( $post_id ) { // test if user liked before
if ( is_user_logged_in() ) { // user is logged in
$user_id = get_current_user_id(); // current user
$meta_USERS = get_post_meta( $post_id, “_user_liked” ); // user ids from post meta
$liked_USERS = “”; // set up array variable
if ( count( $meta_USERS ) != 0 ) { // meta exists, set up values
$liked_USERS = $meta_USERS[0];
}
if( !is_array( $liked_USERS ) ) // make array just in case
$liked_USERS = array();
if ( in_array( $user_id, $liked_USERS ) ) { // True if User ID in array
return true;
}
return false;
} else { // user is anonymous, use IP address for voting
$meta_IPS = get_post_meta( $post_id, “_user_IP” ); // get previously voted IP address
$ip = $_SERVER[“REMOTE_ADDR”]; // Retrieve current user IP
$liked_IPS = “”; // set up array variable
if ( count( $meta_IPS ) != 0 ) { // meta exists, set up values
$liked_IPS = $meta_IPS[0];
}
if ( !is_array( $liked_IPS ) ) // make array just in case
$liked_IPS = array();
if ( in_array( $ip, $liked_IPS ) ) { // True is IP in array
return true;
}
return false;
}
}
/**
* (5) Front end button
*/
function getPostLikeLink( $post_id ) {
$like_count = get_post_meta( $post_id, “_post_like_count”, true ); // get post likes
$count = ( empty( $like_count ) || $like_count == “0” ) ? ” : esc_attr( $like_count );
if ( AlreadyLiked( $post_id ) ) {
$class = esc_attr( ‘ liked’ );
$heart = ‘<i class="fa fa-heart"></i>‘;
} else {
$class = esc_attr( ” );
$title = esc_attr( ‘Beğen’ );
$heart = ‘<i class="fa fa-heart-o"></i>‘;
}
$output = ‘<a href="#" class="jm-post-like'.$class.'" data-post_id="'.$post_id.'" title="'.$title.'">‘.$heart.’ ‘.$count.’</a>‘;
return $output;
}
/**
* (6) Retrieve User Likes and Show on Profile
*/
add_action( ‘show_user_profile’, ‘show_user_likes’ );
add_action( ‘edit_user_profile’, ‘show_user_likes’ );
function show_user_likes( $user ) { ?> </p>
<table class="form-table">
<tr>
<th><label for="user_likes"><?php _e( 'You Like:' ); ?></label></th>
<td>
<?php
$user_likes = get_user_option( "_liked_posts", $user->ID );
if ( !empty( $user_likes ) && count( $user_likes ) > 0 ) {
$the_likes = $user_likes;
} else {
$the_likes = ”;
}
if ( !is_array( $the_likes ) )
$the_likes = array();
$count = count( $the_likes );
$i=0;
if ( $count > 0 ) {
$like_list = ”;
echo “
\n”;
foreach ( $the_likes as $the_like ) {
$i++;
$like_list .= “<a href=\"" . esc_url( get_permalink( $the_like ) ) . "\" title=\"" . esc_attr( get_the_title( $the_like ) ) . "\">” . get_the_title( $the_like ) . “</a>\n”;
if ($count != $i) $like_list .= ” · “;
else $like_list .= “
\n”;
}
echo $like_list;
} else {
echo “
” . _e( ‘You don\’t like anything yet.’ ) . “
\n”;
} ?>
</td>
</tr>
</table>
<p><?php }
/**
* (7) Add a shortcode to your posts instead
* type <a href="" class="jm-post-like" data-post_id="7343" title=""><i class="fa fa-heart-o"></i> 26</a> in your post to output the button
*/
function jm_like_shortcode() {
return getPostLikeLink( get_the_ID() );
}
add_shortcode(‘jmliker’, ‘jm_like_shortcode’);
/**
* (8) If the user is logged in, output a list of posts that the user likes
* Markup assumes sidebar/widget usage
*/
function frontEndUserLikes() {
if ( is_user_logged_in() ) { // user is logged in
$like_list = ”;
$user_id = get_current_user_id(); // current user
$user_likes = get_user_option( “_liked_posts”, $user_id );
if ( !empty( $user_likes ) && count( $user_likes ) > 0 ) {
$the_likes = $user_likes;
} else {
$the_likes = ”;
}
if ( !is_array( $the_likes ) )
$the_likes = array();
$count = count( $the_likes );
if ( $count > 0 ) {
$limited_likes = array_slice( $the_likes, 0, 5 ); // this will limit the number of posts returned to 5
$like_list .= “</p>
<aside>\n”;
$like_list .= “</p>
<h3>” . __( ‘You Like:’ ) . “</h3>
<p>\n”;
$like_list .= “</p>
<ul>\n”;
foreach ( $limited_likes as $the_like ) {
$like_list .= “</p>
<li><a href='" . esc_url( get_permalink( $the_like ) ) . "' title='" . esc_attr( get_the_title( $the_like ) ) . "'>” . get_the_title( $the_like ) . “</a></li>
<p>\n”;
}
$like_list .= “</ul>
<p>\n”;
$like_list .= “</aside>
<p>\n”;
}
echo $like_list;
}
}
/**
* (9) Outputs a list of the 5 posts with the most user likes TODAY
* Markup assumes sidebar/widget usage
*/
function jm_most_popular_today() {
global $post;
$today = date(‘j’);
$year = date(‘Y’);
$args = array(
‘year’ => $year,
‘day’ => $today,
‘post_type’ => array( ‘post’, ‘enter-your-comma-separated-post-types-here’ ),
‘meta_key’ => ‘_post_like_count’,
‘orderby’ => ‘meta_value_num’,
‘order’ => ‘DESC’,
‘posts_per_page’ => 5
);
$pop_posts = new WP_Query( $args );
if ( $pop_posts->have_posts() ) {
echo “</p>
<aside>\n”;
echo “</p>
<h3>” . _e( ‘Today\’s Most Popular Posts’ ) . “</h3>
<p>\n”;
echo “</p>
<ul>\n”;
while ( $pop_posts->have_posts() ) {
$pop_posts->the_post();
echo “</p>
<li><a href='" . get_permalink($post->ID) . “‘>” . get_the_title() . “</a></li>
<p>\n”;
}
echo “</ul>
<p>\n”;
echo “</aside>
<p>\n”;
}
wp_reset_postdata();
}
/**
* (10) Outputs a list of the 5 posts with the most user likes for THIS MONTH
* Markup assumes sidebar/widget usage
*/
function jm_most_popular_month() {
global $post;
$month = date(‘m’);
$year = date(‘Y’);
$args = array(
‘year’ => $year,
‘monthnum’ => $month,
‘post_type’ => array( ‘post’, ‘enter-your-comma-separated-post-types-here’ ),
‘meta_key’ => ‘_post_like_count’,
‘orderby’ => ‘meta_value_num’,
‘order’ => ‘DESC’,
‘posts_per_page’ => 5
);
$pop_posts = new WP_Query( $args );
if ( $pop_posts->have_posts() ) {
echo “</p>
<aside>\n”;
echo “</p>
<h3>” . _e( ‘This Month\’s Most Popular Posts’ ) . “</h3>
<p>\n”;
echo “</p>
<ul>\n”;
while ( $pop_posts->have_posts() ) {
$pop_posts->the_post();
echo “</p>
<li><a href='" . get_permalink($post->ID) . “‘>” . get_the_title() . “</a></li>
<p>\n”;
}
echo “</ul>
<p>\n”;
echo “</aside>
<p>\n”;
}
wp_reset_postdata();
}
/**
* (11) Outputs a list of the 5 posts with the most user likes for THIS WEEK
* Markup assumes sidebar/widget usage
*/
function jm_most_popular_week() {
global $post;
$week = date(‘W’);
$year = date(‘Y’);
$args = array(
‘year’ => $year,
‘w’ => $week,
‘post_type’ => array( ‘post’, ‘enter-your-comma-separated-post-types-here’ ),
‘meta_key’ => ‘_post_like_count’,
‘orderby’ => ‘meta_value_num’,
‘order’ => ‘DESC’,
‘posts_per_page’ => 5
);
$pop_posts = new WP_Query( $args );
if ( $pop_posts->have_posts() ) {
echo “</p>
<aside>\n”;
echo “</p>
<h3>” . _e( ‘This Week\’s Most Popular Posts’ ) . “</h3>
<p>\n”;
echo “</p>
<ul>\n”;
while ( $pop_posts->have_posts() ) {
$pop_posts->the_post();
echo “</p>
<li><a href='" . get_permalink($post->ID) . “‘>” . get_the_title() . “</a></li>
<p>\n”;
}
echo “</ul>
<p>\n”;
echo “</aside>
<p>\n”;
}
wp_reset_postdata();
}
/**
* (12) Outputs a list of the 5 posts with the most user likes for ALL TIME
* Markup assumes sidebar/widget usage
*/
function jm_most_popular() {
global $post;
echo “</p>
<aside>\n”;
echo “</p>
<h3>” . _e( ‘Most Popular Posts’ ) . “</h3>
<p>\n”;
echo “</p>
<ul>\n”;
$args = array(
‘post_type’ => array( ‘post’, ‘enter-your-comma-separated-post-types-here’ ),
‘meta_key’ => ‘_post_like_count’,
‘orderby’ => ‘meta_value_num’,
‘order’ => ‘DESC’,
‘posts_per_page’ => 5
);
$pop_posts = new WP_Query( $args );
while ( $pop_posts->have_posts() ) {
$pop_posts->the_post();
echo “</p>
<li><a href='" . get_permalink($post->ID) . “‘>” . get_the_title() . “</a></li>
<p>\n”;
}
wp_reset_postdata();
echo “</ul>
<p>\n”;
echo “</aside>
<p>\n”;
}
Single.php de uygun yere alttaki kodu ekleyin.
Beğen: <?php echo getPostLikeLink( $post->ID );?>
WordPress Kod Gösterme Eklentileri: En İyi 5 Seçenek ve Kullanım Rehberi19 Aralık 2024 · 0 yorum
WordPress’te Sayfa Kaynak Kodunu Optimize Ederek SEO Performansınızı Artırın16 Aralık 2024 · 0 yorum
WordPress Admin Çubuğu Sorununu Çözme: Navbar İçin Pratik Çözümler11 Aralık 2024 · 0 yorum
Yorumlar / Cevaplar
0 yorum