webmaster

ساخت پوشه widgets و ابزارک اختصاصی

2 پست در این موضوع قرار دارد

سلام خدمات تمامی دوستان

سه سالگی انجمن وردپرس پارسی رو به تمامی مدیران و کاربران تبریک میگم و امیدوارم روز به روز شاهد پیشرفت وردپرس پارسی باشیم.

من بعضی قالب های خارجی رو دیدم که داخل پوشه تم یه پوشه ای به نام widgets دارند و داخل ابزارک های اختصاصی دارند. حال من میخوام یکی از این ابزارک های قالب رو روی قالب خودم استفاده کنم.

اما هر کاری کردم نشد. کد ابزارک به صورت زیر است :


<?php
/**
Recent comments widget for the Bandit Framework
The contents of this file are subject to the terms of the GNU General
Public License Version 2.0. You may not use this file except in
compliance with the license. Any of the license terms and conditions
can be waived if you get permission from the copyright holder.
Copyright (c) 2011 Bandit Media
Jermaine Marée
@package Bandit_RecentComments
@version 1.0
**/
//! Recent comments widget
class Bandit_RecentComments extends WP_Widget {
/**
Constructor
**/
function Bandit_RecentComments() {
parent::WP_Widget(false,$name='آخرین دیدگاه ها');
}
/**
Widget
**/
function widget($args, $instance) {
extract( $args );
$instance['title']?NULL:$instance['title']='آخرین دیدگاه ها';
$title=apply_filters('widget_title',$instance['title']);
$comments_num=$instance['comments_num'];
$output=$before_widget."\n";
$output.=$before_title.$title.$after_title;
if($comments_num) {
// Get comments
$comments=get_comments(array('number'=>$comments_num,'status'=>'approve','post_status'=>'publish'));
// Build widget
$output.='<ul class="clearfix">'."\n";
foreach ($comments as $comment) {
$output.='<li>'."\n";
$output.='<div class="gravatar">'.get_avatar($comment->comment_author_email,$size='50')."\n";
$output.=' <a class="view_more" href="'.esc_url(get_comment_link($comment->comment_ID)).'">گفتگو کردن</a>'."\n";
$output.='</div>'."\n";
$output.='<div class="wrap_comment">'."\n";
$output.=' <div class="post_link">در <span>'.get_the_title($comment->comment_post_ID).'</span></div>'."\n";
$output.=' <p>توسط '.$comment->comment_author.'</p>'."\n";
$output.=' <a class="comment_link" href="'.esc_url(get_comment_link($comment->comment_ID)).'" title="پست جدید با تصویر بزرگ>"'.get_comment_excerpt($comment->comment_ID).'"</a>'."\n";
$output.='</div>'."\n";
$output.='</li>'."\n";
}
}
$output.='</ul>'."\n";
$output.=$after_widget."\n";
echo $output;
}

/**
Widget update
**/
function update($new_instance,$old_instance) {
$instance=$old_instance;
$instance['title']=strip_tags($new_instance['title']);
$instance['comments_num']=strip_tags($new_instance['comments_num']);
return $instance;
}
/**
Widget form
**/
function form($instance) {
// Default widget settings
$defaults=array('title'=>__('آخرین دیدگاه ها'),'comments_num'=>2);
$instance=wp_parse_args((array)$instance,$defaults);
// Build form
$form='<p>';
$form.='<label for="'.$this->get_field_id('title').'">عنوان:</label>';
$form.='<input class="widefat" id="'.$this->get_field_id('title').'" name="'.$this->get_field_name('title').'" type="text" value="'.$instance['title'].'" />';
$form.='</p>';
$form.='<p>';
$form.='<label for="'.$this->get_field_id('comments_num').'">'.__('# دیدگاه:').'</label>';
$form.='<select id="'.$this->get_field_id('comments_num').'" name="'.$this->get_field_name('comments_num').'">';
for($i=1;$i<5;$i++)
$form.='<option value="'.$i.'" '.(($instance['comments_num']==$i)?'selected="selected"':NULL).'>'.$i.'</option>';
$form.='</select>';
$form.='</p>';
// Display form
echo $form;
}
}

ممنون میشم راهنمایی کنید تا این رو به لیست ابزارک ها اضافه کنم.

0

به اشتراک گذاری این پست


لینک به پست

این اکشن و تابع رو هم بعد از کدهاتون قراربدید


add_action( 'widgets_init', 'bandit_recentcomments' );
function bandit_recentcomments() {
register_widget( 'Bandit_RecentComments' );
}

و اگر کدها را در فایلی به جز functions.php ساختید کدی شبیه کد زیر با نشانی صحیح فایل را در functions.php قالب قرار بدید


require get_template_directory() . '/widgets/bandit-recentcomments.php';

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری