رفتن به مطلب

اضافه کردن ابزارک


پست های پیشنهاد شده

برای اضافه کردن ابزارک به وردپرس به چه صورت باید عمل کنم؟

چند تا مطلب خوندم اما بیشتر توضیح و آموزش اضافه کردن ساید بار بود.

1- یک قالب برای یک صفحه داخل پوسته تعریف کردم، و یک سایدبار هم برای اون قالب تعریف کردم. می خوام توی اون قالب بتونم از ابزارک استفاده کنم. به این صورت که از قسمت ابزراک ها داخل پنل وردپرس، بتونم به ابزارک رو به سایدبار مربوطه و یا سایدبارهای دیگه اضافه کنم.

2- در مرحله بعدی هم می خوام توی اون ابزارک، چند تا فیلد در نظر بگیرم یکی برای عنوان، یکی برای لینک و یکی هم برای عکس. و این به عنوان یک آیتم در سایت بار نمایش داده بشه و حالا بشه به صورتی این یک آیتم رو کم یا زیاد کرد و این سه فیلد داخل اون ابزارک برای هر آیتم که اضافه می شه نمایان بشه و بشه پر کرد و در سایت نمایش داده بشه!

 

چطور می تونم این کار رو انجام بدم؟

 

لینک به ارسال
در در ۱۳۹۵/۵/۱۸ ه‍.ش. at 20:45، IFTHEN گفته است :

برای اضافه کردن ابزارک به وردپرس به چه صورت باید عمل کنم؟

چند تا مطلب خوندم اما بیشتر توضیح و آموزش اضافه کردن ساید بار بود.

1- یک قالب برای یک صفحه داخل پوسته تعریف کردم، و یک سایدبار هم برای اون قالب تعریف کردم. می خوام توی اون قالب بتونم از ابزارک استفاده کنم. به این صورت که از قسمت ابزراک ها داخل پنل وردپرس، بتونم به ابزارک رو به سایدبار مربوطه و یا سایدبارهای دیگه اضافه کنم.

2- در مرحله بعدی هم می خوام توی اون ابزارک، چند تا فیلد در نظر بگیرم یکی برای عنوان، یکی برای لینک و یکی هم برای عکس. و این به عنوان یک آیتم در سایت بار نمایش داده بشه و حالا بشه به صورتی این یک آیتم رو کم یا زیاد کرد و این سه فیلد داخل اون ابزارک برای هر آیتم که اضافه می شه نمایان بشه و بشه پر کرد و در سایت نمایش داده بشه!

 

چطور می تونم این کار رو انجام بدم؟

 

کد زیر رو وارد کنید:

        register_sidebar(array(
            'name' => __('نام نمایشی'),
            'id' => 'ای دی ناحیه',
            'description' => __('توضیحات دلخواه'),
            'before_widget' => 'قبل از عنوان و محتوا تگهایی که لازمند رو باز کن',
            'after_widget' => 'این قسمتم تگ های کلی رو باید ببندی',
            'before_title' => 'قبل از عنوان نمایشی تگهای مورد نظر رو وارد کن',
            'after_title' => 'بعد ازعنوان تگ هایی رو که باز کرده بودی ببند',
        ));

 

لینک به ارسال
  • 4 ماه بعد...
ارسال شده در (ویرایش شده)

من ویجت رو اضافه کردم به قالبم.

حالا مشکلی که دارم اینه که می خوام برای هر ویجت یک استایل خاص با تگ های خاص html در نظر بگیرم!

	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar', 'theme' ),
		'id'            => 'sidebar-1',
		'description'   => esc_html__( 'Add widgets here.', 'theme' ),
   	    'before_widget' => '<div class="last-entry" id="%1$s">',
		'after_widget'  => '</div>',
		'before_title'  => '<h3><span>',
		'after_title'   => '</span></h3>',
	) );

کد ویجت هم کد زیر هست:

// Creating the widget 
class wpb_widget extends WP_Widget {

function __construct() {
parent::__construct(
// Base ID of your widget
'wpb_widget', 

// Widget name will appear in UI
__('WPBeginner Widget', 'wpb_widget_domain'), 

// Widget description
array( 'description' => __( 'Sample widget based on WPBeginner Tutorial', 'wpb_widget_domain' ), ) 
);
}

// Creating widget front-end
// This is where the action happens
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];

// This is where you run the code and display the output
echo __( 'Hello, World!', 'wpb_widget_domain' );
echo $args['after_widget'];
}
		
// Widget Backend 
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
else {
$title = __( 'New title', 'wpb_widget_domain' );
}
// Widget admin form
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php 
}
	
// Updating widget replacing old instances with new
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
} // Class wpb_widget ends here

// Register and load the widget
function wpb_load_widget() {
	register_widget( 'wpb_widget' );
}
add_action( 'widgets_init', 'wpb_load_widget' );

اما با کد بالا تمام ویجت هایی که داخل این ساید بار میاد، با div های با کلاس last-entry میاد!

1- حالا اگه بخوام ویجت شماره 1 با کلاس class-1 بیاد و ویجت شماره 2 با کلاس class-2 بیاد، باید چیکار کنم؟

 

2- سوال دوم اینه که من می خوام پربازدید ترین پست ها و یا پست های اخیر رو توی این قسمت بیارم، برای اینکار باید به چه صورت اقدام کنم؟ (اگه درست متوجه شده باشم باید کد مربوطه رو به جای "Hello, World!" بذارم درسته؟)

ویرایش شده توسط IFTHEN
لینک به ارسال
  • 2 هفته بعد...
در در ۱۳۹۵/۱۰/۹ ه‍.ش. at 01:30، IFTHEN گفته است :

1- حالا اگه بخوام ویجت شماره 1 با کلاس class-1 بیاد و ویجت شماره 2 با کلاس class-2 بیاد، باید چیکار کنم؟

تو مثال فق آی دی ها الان داینامیک هستن و میتونید براساس ای دی انجام بدید.

 

در در ۱۳۹۵/۱۰/۹ ه‍.ش. at 01:30، IFTHEN گفته است :

2- سوال دوم اینه که من می خوام پربازدید ترین پست ها و یا پست های اخیر رو توی این قسمت بیارم، برای اینکار باید به چه صورت اقدام کنم؟ (اگه درست متوجه شده باشم باید کد مربوطه رو به جای "Hello, World!" بذارم درسته؟)

 

public function widget( $args, $instance ) {
//کدها در این بخش باید قرار بگیرند
}

 

لینک به ارسال
  • 3 ماه بعد...
در در 1/8/2017 at 13:01، Morteza گفته است :

تو مثال فق آی دی ها الان داینامیک هستن و میتونید براساس ای دی انجام بدید.

 

 


public function widget( $args, $instance ) {
//کدها در این بخش باید قرار بگیرند
}

 

من می خوام برای مثال کد زیر رو داخل ویجت قرار بدم که بعد از قرار دادن ویجت در ساید بار آخرین پست ها رو نمایش بده:

<ul>
// Define our WP Query Parameters
<?php $the_query = new WP_Query( 'posts_per_page=5' ); ?>

// Start our WP Query
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>

// Display the Post Title with Hyperlink
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

// Display the Post Excerpt
<li><?php the_excerpt(__('(more…)')); ?></li>

// Repeat the process and reset once it hits the limit
<?php 
endwhile;
wp_reset_postdata();
?>
</ul>

ممنون می شم راهنمایی کنید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...