رفتن به مطلب

مشکل در ساخت ابزارک اختصاصی قالب


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

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


Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\wordpress\wp-content\themes\ghaleb tafrihi\widget.php on line 45

اینم کد


// This is where you run the code and display the output
echo __( '<section style="border:none;">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home"><i class="glyphicon glyphicon-eye-open"></i>آخرین مطالب</a></li>
<li><a data-toggle="tab" href="#menu1"><i class="glyphicon glyphicon-eye-open"></i>مطالب محبوب</a></li>
<li><a data-toggle="tab" href="#menu2"><i class="glyphicon glyphicon-eye-open"></i>مطالب تصادفی</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<ul>
'.
$portfolio = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'cat' =>'-1',
'posts_per_page' =>get_option('shortname_tab_num'),
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
)); if($portfolio->have_posts()) :
while($portfolio->have_posts()) : $portfolio->the_post();
.'
<li><a href="'.the_permalink();.' target="_blank">'.the_title();.'</a></li>
'. endwhile; endif; wp_reset_query(); .'
</ul>
</div>
<div id="menu1" class="tab-pane fade">
<ul>
'.
$popularpost = new WP_Query(array(
'posts_per_page' => get_option('shortname_tab_num'),
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC' ));
while ( $popularpost->have_posts() ) : $popularpost->the_post(); .'
<li><a href="'.the_permalink();.'" target="_blank">'. the_title();.'</a></li>
'. endwhile; .'
</ul>
</div>
<div id="menu2" class="tab-pane fade">
<ul>
'.$posts = get_posts('orderby=rand&numberposts='.get_option('shortname_tab_num').''); foreach($posts as $post) {.'
<li><a href="'.the_permalink();.'" target="_blank">'.the_title();.'</a></li>
'.} .'
</ul>
</div>
</div>
</section>', 'bigtheme' );

لاین 45 اینه


)); if($portfolio->have_posts()) :

اساتید help :D:P

لینک به ارسال

همه چی رو که اکو نباید بکنید اون هم داخل تابع زبان !

کدها رو خارج از تگ php قرار بدید


<section style="border:none;">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home"><i class="glyphicon glyphicon-eye-open"></i>آخرین مطالب</a></li>
<li><a data-toggle="tab" href="#menu1"><i class="glyphicon glyphicon-eye-open"></i>مطالب محبوب</a></li>
<li><a data-toggle="tab" href="#menu2"><i class="glyphicon glyphicon-eye-open"></i>مطالب تصادفی</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<ul>
<?php
$portfolio = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'cat' =>'-1',
'posts_per_page' =>get_option('shortname_tab_num'),
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
)); if($portfolio->have_posts()) :
while($portfolio->have_posts()) : $portfolio->the_post(); ?>
<li><a href="<?php the_permalink();?>" target="_blank"><?php the_title();?></a></li>
<?php endwhile; endif; wp_reset_query(); ?>
</ul>
</div>
<div id="menu1" class="tab-pane fade">
<ul>
<?php
$popularpost = new WP_Query(array(
'posts_per_page' => get_option('shortname_tab_num'),
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
while ( $popularpost->have_posts() ) : $popularpost->the_post();?>
<li><a href="<?php the_permalink();?>" target="_blank"><?php the_title();?></a></li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>
<div id="menu2" class="tab-pane fade">
<ul>
<?php $posts = get_posts('orderby=rand&numberposts='.get_option('shortname_tab_num'));
foreach($posts as $post) { ?>
<li><a href="<?php the_permalink();?>" target="_blank"><?php the_title();?></a></li>
<?php } ?>
</ul>
</div>
</div>
</section>

لینک به ارسال
همه چی رو که اکو نباید بکنید اون هم داخل تابع زبان ! کدها رو خارج از تگ php قرار بدید
	[list]
[*][url="#home"]آخرین مطالب[/url]
[*][url="#menu1"]مطالب محبوب[/url]
[*][url="#menu2"]مطالب تصادفی[/url]

[/list] [list]
'publish', 'post_type' =>'post', 'cat' =>'-1', 'posts_per_page' =>get_option('shortname_tab_num'), 'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 )); if($portfolio->have_posts()) : while($portfolio->have_posts()) : $portfolio->the_post(); ?> [*]

[/list] [list]
get_option('shortname_tab_num'), 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' )); while ( $popularpost->have_posts() ) : $popularpost->the_post();?> [*]

[/list]
[list]
[*]

[/list]

والا تا جایی که من تو آموزشش خوندم باید داخل همون تابع اکو کدها رو بزارم حالا شاید طرف اشتباه گفته من خارج تابع اکو میزارم این اررور رو میده


Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\wordpress\wp-content\themes\ghaleb tafrihi\widget.php on line 29

کلا کدی که من تو آموزشش برای ساخت ابزارک اختصاصی دیدم اینه


<?php
// 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
__('ابزارک تب سه گانه اختصاصی قالب', 'bigtheme'),

// Widget description
array( 'description' => __( 'ابزارک جهت نمایش مطالب جدید,محبوب و تصادفی می باشد', 'bigtheme' ), )
);
}

// 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 __( '', 'bigtheme' );
echo $args['after_widget'];
}

// Widget Backend
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
else {
$title = __( 'عنوان ابزارک', 'bigtheme' );
}
// Widget admin form
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input 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' );

و همه هم میگن باید داخل تابع اکو بزاریم

لینک به ارسال

من وقتی داخل تابع اکو کد html قرار میدم اجرا میکنه بدون مشکل ولی کد php که واردش میشه به مشکل میخوره فکر کنم کدی که گذاشتم درست بود همه الحاق ها رو هم درست انجام دادم فقط نمیدونم اون ; چی میگه اون وسط!!!

لینک به ارسال

فقط باید کدهای html و تکست ها و هر آنچه که می خواهید اکو شود را در داخل تابع اکو بگذارید و دستوراتی مثل foreach و یا while یا شرط if و امثال هم رو نباید اکو کنید

کوئری را نباید داخل اکو بسازید یا ریست کنید و فقط باید نتیجه اش رو اکو کنید

اگر از این همه ای که فرمودید یک نفر حرف دیگه ای زد مشخصاتش رو اینجا بگذارید

لینک به ارسال

فقط باید کدهای html و تکست ها و هر آنچه که می خواهید اکو شود را در داخل تابع اکو بگذارید و دستوراتی مثل foreach و یا while یا شرط if و امثال هم رو نباید اکو کنید

کوئری را نباید داخل اکو بسازید یا ریست کنید و فقط باید نتیجه اش رو اکو کنید

اگر از این همه ای که فرمودید یک نفر حرف دیگه ای زد مشخصاتش رو اینجا بگذارید

طرف که مثل شما استاد نیست اونم لابد از یه جا کپی کرده تو سایتش گذاشته :D:P خب من الان باید چیکار کنم؟!!یعنی وقتی به کدهای شرطی میرسم چیکار کنم؟!با الحاق درست نمیشه؟!خروجیش مثلا $portfolio رو کجا باید بزارم نمیشه که حلقه نباشه!!!یا اصلا باید یه راهی دیگه به جز اکو کردن برای گذاشتن کدهای html,php باشه در ابزارک اختصاصی!!

لینک به ارسال

ببینید وقتی می گیم یک قطعه کد اکو بشه تو صفحه یعنی از طرف سرور به طرف کاربر منتقل بشه به عبارت دیگه یعنی در سورس کد صفحه قابل دیدن باشه

تمام دستورات php - شرطها - حلقه ها و ... سمت سرور باید اجرا بشند و فقط نتایجشونه که می تونه اکو بشه سمت کاربر

بجای


echo __( '', 'bigtheme' );

تو کدهاتون قرار بدید


?>
اینجا کدهایی که تو پاسخ قبلی قرار دادم رو بگذارید
<?php

لینک به ارسال

ببینید وقتی می گیم یک قطعه کد اکو بشه تو صفحه یعنی از طرف سرور به طرف کاربر منتقل بشه به عبارت دیگه یعنی در سورس کد صفحه قابل دیدن باشه

تمام دستورات php - شرطها - حلقه ها و ... سمت سرور باید اجرا بشند و فقط نتایجشونه که می تونه اکو بشه سمت کاربر

بجای


echo __( '', 'bigtheme' );

تو کدهاتون قرار بدید


?>
اینجا کدهایی که تو پاسخ قبلی قرار دادم رو بگذارید
<?php

آها فهمیدم خیلی خیلی ممنون درست شد :)

لینک به ارسال

ببینید وقتی می گیم یک قطعه کد اکو بشه تو صفحه یعنی از طرف سرور به طرف کاربر منتقل بشه به عبارت دیگه یعنی در سورس کد صفحه قابل دیدن باشه

تمام دستورات php - شرطها - حلقه ها و ... سمت سرور باید اجرا بشند و فقط نتایجشونه که می تونه اکو بشه سمت کاربر

بجای


echo __( '', 'bigtheme' );

تو کدهاتون قرار بدید


?>
اینجا کدهایی که تو پاسخ قبلی قرار دادم رو بگذارید
<?php

استاد عزیز یه مشکل کوچیک الان فهمیدم بخش مطالب تصادفی رو از زمانی که توی ابزارک اختصاصی گذاشتم بهم ریخته به طوری که هر 10تا مطلب تصادفی رو فقط یه عنوان نشون میده!!!


<ul>
<?php $posts = get_posts('orderby=rand&numberposts=10');
foreach($posts as $post) { ?>
<li><a href="<?php the_permalink();?>" target="_blank"><?php the_title();?></a></li>
<?php } ?>
</ul>

منظورم اینکه که 10تا مطلب مختلف نشون نمیده و هر 10تا مطلب یکیه!!

لینک به ارسال
  • 1 ماه بعد...
در در 12/14/2015 at 21:14، imanfakhar گفته است :
 

<a href="<?php echo get_permalink($post->ID);?>" target="_blank"><?php echo $post->post_title;?></a>

 

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

Fatal error: Cannot redeclare class wpb_widget in C:\xampp\htdocs\wp\wp-content\themes\digiweb\popularposts.php on line 69

فکر کنم شاید بخاطر اینه که آی دی های سه تا ابزارک عین همه و باید در دوتا ابزارک بعدی یه سری تغییرات بدم

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

لینک به ارسال

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

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

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

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

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

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

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

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

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