ahmad4u

راهنمایی در مورد یک کد فانکشن (حذف لینک های موجود در متن)

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

سلام دوستان

با قرار دادن کد زیر در فانکشن تمام لینک های موجود در متن حذف میشه

add_filter('the_content', 'removelink_content',1);

function removelink_content($content = '')
{
	preg_match_all("#<a(.*?)>(.*?)</a>#i",$content, $matches);
	$num = count($matches[0]);for($i = 0;$i < $num;$i++){
		$content = str_replace($matches[0][$i] , $matches[2][$i] , $content);
	}
	return $content;
}

حالا میخوام همه لینک ها حذف نشه بلکه یکسری لینک هایی که بهش میدم حذف بشه و یکسری لینک هایی که آخرشون متغیر هست مثل (site.com/tag/1125)

لطفا راهنمایی کنید کد بالا چه تغییری باید بکنه

 

تشکر

0

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


لینک به پست
در 20 ساعت قبل، ahmad4u گفته است :

سلام دوستان

با قرار دادن کد زیر در فانکشن تمام لینک های موجود در متن حذف میشه


add_filter('the_content', 'removelink_content',1);

function removelink_content($content = '')
{
	preg_match_all("#<a(.*?)>(.*?)</a>#i",$content, $matches);
	$num = count($matches[0]);for($i = 0;$i < $num;$i++){
		$content = str_replace($matches[0][$i] , $matches[2][$i] , $content);
	}
	return $content;
}

حالا میخوام همه لینک ها حذف نشه بلکه یکسری لینک هایی که بهش میدم حذف بشه و یکسری لینک هایی که آخرشون متغیر هست مثل (site.com/tag/1125)

لطفا راهنمایی کنید کد بالا چه تغییری باید بکنه

 

تشکر

سلام از کد زیر استفاده کنید

محل کد:  ( function.php )

add_filter( 'the_content', 'misha_remove_all_a' );
function misha_remove_all_a( $content ){
    $i_link = array (
        '#<a href="http://pouya.com">(.*?)</a>#is',
        '#<a href="http://pouya1.com">(.*?)</a>#is',
    );
    return preg_replace($i_link, '\1', $content);
}

 

ویرایش شده در توسط pouya.x
1

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


لینک به پست
در ۱ ساعت قبل، pouya.x گفته است :

سلام از کد زیر استفاده کنید

محل کد:  ( function.php )


add_filter( 'the_content', 'misha_remove_all_a' );
function misha_remove_all_a( $content ){
    $i_link = array (
        '#<a href="http://pouya.com">(.*?)</a>#is',
        '#<a href="http://pouya1.com">(.*?)</a>#is',
    );
    return preg_replace($i_link, '\1', $content);
}

 

 

متاسفانه کار نمیکنه کد بالا و هیچ لینکی را حذف نمیکنه

0

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


لینک به پست
در 18 دقیقه قبل، ahmad4u گفته است :

متاسفانه کار نمیکنه کد بالا و هیچ لینکی را حذف نمیکنه

بگو دقیقا چه لینک هایی رو میخوای حذف کنی.

تگ ها یا دسته ها یا ...

1

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


لینک به پست

لینک ها دو دسته میشن

یکی لینک سایت: مثلا http://site.com

یکی هم لینک های متغیر (یک بخش یا دو بخش متغییر باشه) : مثل http://site.com/tags/1562 یا http://site.com/1/1562 

0

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


لینک به پست
در 6 دقیقه قبل، ahmad4u گفته است :

لینک ها دو دسته میشن

یکی لینک سایت: مثلا http://site.com

یکی هم لینک های متغیر (یک بخش یا دو بخش متغییر باشه) : مثل http://site.com/tags/1562 یا http://site.com/1/1562 

یعنی هر لینکی که توش آدرس سایت باشه باید حذف شه؟

1

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


لینک به پست
در هم اکنون، mehran-b گفته است :

یعنی هر لینکی که توش آدرس سایت باشه باید حذف شه؟

اره

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

میخواهیم لینک یکسری کلمات که لینکدار هستن را حذف کنیم (فقط لینک نه خود کلمه)

0

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


لینک به پست
در هم اکنون، ahmad4u گفته است :

اره

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

میخواهیم لینک یکسری کلمات که لینکدار هستن را حذف کنیم (فقط لینک نه خود کلمه)

من متوجه نمیشم چی میگی.

اگر خبرخوان باشه شما منظورت اینه لینک های خارجی که مربوط به دامین شما نیست باید حذف شه.

1

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


لینک به پست
در هم اکنون، mehran-b گفته است :

من متوجه نمیشم چی میگی.

اگر خبرخوان باشه شما منظورت اینه لینک های خارجی که مربوط به دامین شما نیست باید حذف شه.

بله

یکسری لینک هایی که تعیین میکنیم باید حذف بشه و از متن پست ها

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

میخوام فقط لینک هایی که بهش میدم حذف کنه

0

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


لینک به پست
در 7 دقیقه قبل، ahmad4u گفته است :

بله

یکسری لینک هایی که تعیین میکنیم باید حذف بشه و از متن پست ها

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

میخوام فقط لینک هایی که بهش میدم حذف کنه

خوب اینطوری شما باید با RegEx آشنایی داشته باشید.

کدش این میشه:

add_filter('the_content', function($content)
{
	$dom = new DOMDocument('1.0', 'UTF-8');
	@$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));
	$xpath = new DOMXpath($dom);
	
	$anchor = $xpath->query('//a');
	
	if($anchor->length == 0)
	{
		return $content;
	}
		
	$pattern = '/^https:\/\/mehran\.com/';
	
	foreach($anchor as $link)
	{
		if(preg_match($pattern, $link->getAttribute('href')))
		{
			if($link->childNodes->length > 0)
			{
				$link->parentNode->insertBefore($link->childNodes->item(0), $link);
			}
			
			$link->parentNode->removeChild($link);
		}
	}
	
	return trim(preg_replace('/^<!DOCTYPE.+?>/', '', str_replace(array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $dom->saveHTML($dom->documentElement))));
});

 

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

به عنوان مثال مقداری که من وارد کردم لینک هایی که با عبارت:

https://mehran.com

شروع میشن رو حذف میکنه.

1

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


لینک به پست
در 2 ساعت قبل، ahmad4u گفته است :

 

متاسفانه کار نمیکنه کد بالا و هیچ لینکی را حذف نمیکنه

تست کرده بودم ادرس داخل href رو درست عوض کنید کاملا حذف میشه

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط esmaeil.am
      سلام وقت بخیر من هر قالبی که نصب میکنم این ارور رو میده از فایل فانکشن و فقط خد 8 رو ارور میده مشکل از چیه دوستان ممنون میشم راهنمایی کنید
      Fatal error: Can't use function return value in write context in /home/********/public_html/wp-content/themes/*********/functions.php on line 8
    • توسط SM-Mahdavi
      سلام دوستان.
      من ProPanel ( کنترل پنل قالب وردپرس رو رو قالبم ست کرده بودم.)
      بعد می خواستم برش دارم. پوشه admin رو پاک کردم و کدهایی که تو فانکشن برای اضافه کردن پنل داده بودم رو هم پاک کردم.
      حالا نمی دونم چی شده فایل فانکشن مشکل پیدا کرده! حتی وردپرس رو هم از اول نصب کردم ولی مشکلم حل نشد. یکی از مشکلاتی که پیدا کرده اینه که مثلا می خوام دسته اضافه کنم میگه از قبل وجود داره. یا تصویر شاخص برای پست می خوام بزارم خطا میده. چند بارم که تکرار بشه دیگه پنل وردپرس بالا نمیاد. مچبورم دوباره وردپرس نصب کنم. و دوباره همون مشکل!
      نمیدونم درست توضیح دادم یا نه ! ولی دوستان اگه چیزی از حرف های من متوجه شدید و راهی به ذهنتون می رسه ممنون میشم کمکم کنید.
      مرسی از همه
    • توسط سعید شعبانی
      اکثر قابلیت هایی که می خواهید توسط هک های وردپرس به سایت خود بیفزایید, یک کد به شما ارائه می دهند که باید در فایل فانکشن قالب خود قرار دهید. شما برای افزودن این کد ها باید فایل فانکشن را باز کنید و کد های جدید را به آن بیفزایید اما این کار می تواند باعث گرفتن وقت شما شود. افزونه Functionality که به تازگی ارائه شده است یک ادیتور جدید به مدیریت وردپرس شما اضافه می کند و شا می توانید کد هایی که می خواهید در فانکشن قرار دهید را در آن بگذارید و این افزونه خودش فایل Function.php را برای شما بسازد. البته مزایایی دیگر نیز این کار دارد. یکی اینکه, کار را برای شما آسان می کند و در زمان بروز مشکل شما راحتر می توانید مشکلات را پیدا و رفع کنید و دیگر اینکه با تغییر قالب دیگر فایل فانکشن شما تغییر نمی کند. اما همین مضیت دوم می توتند یک مشکل برای سایت شما بوجود آورد.
      دانلود افزونه Functionality در مخزن وردپرس
      منبع

    • توسط 021
      سلام
      سال نو مبارک
      اگه میشه کلا فانکشن زیر رو برای من توضیح بدید :


      'action': function(){
      jQuery('.picker').each(function(){
      jQuery(this).val(jQuery(this).attr('default'));
      jQuery(this).trigger('keyup.miniColors');
      });

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

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

      میخوام بدونم باید چیکار کنم که این کدها اتوماتیک به فانکشن اضافه نشن ...
      ممنون