is_main_query() && is_singular()){ add_filter('the_content', array($this, 'add_buttons_wrap')); } } /* * Check current page is post, page, (a singular object). * Remove filter the_content / add_buttons_wrap after fire it. */ public function loop_end($query){ if($query->is_main_query() && is_singular()){ remove_filter('the_content', array($this, 'add_buttons_wrap')); } } /* * Add a div with ID:aksb-buttons-wrap, * with jquery event window.load(), a ajax request will be get sharing buttons and fill to this element. */ public function add_buttons_wrap($content){ if(!empty($content)){ $content .= '
'; } return $content; } /* * Add a hidden field to before tag body close. * This field need for ajax security */ public function add_security_key(){ wp_nonce_field('aksb_load_sharing_buttons', 'aksb-sharing-buttons-security'); } /* * An ajax response. Return sharing buttons to client. */ public function load_sharing_buttons(){ check_ajax_referer('aksb_load_sharing_buttons', 'security'); $post_id = isset($_POST['post_id']) ? (int) $_POST['post_id'] : 0; if($post_id): $url = get_permalink($post_id); $title = get_the_title($post_id); $thumb = ''; if(has_post_thumbnail($post_id)){ $image = wp_get_attachment_image_src(get_post_thumbnail_id($post_id), 'full'); if(isset($image[0]) && !empty($image[0])){ $thumb = $image[0]; } } ?> admin_url('admin-ajax.php'), 'post_id' => is_singular() ? get_queried_object_id() : 0 )); } }