رفتن به مطلب

تابع بازشدن حودکار لینک ها در iframe


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

سلام

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

تو شبکه اجتماعیstackoverflow سوال شده بود. لینک رو نگاه کنید

لینک تابع


<?php
//Automatically replace content of wordpress posts/page
if (function_exists('add_filter')) {
add_filter('the_content', 'frame_external_links');
}
//test datas
$content = '
<a href="#">fedmich</a>
<a href="https://google.com">federico</a>
<a href="http://google.com">google</a>
<a href="subfolder">subfolder</a>
<a href="/absolute">absolute</a>
<a href="../">relative</a>
';
$contentx = frame_external_links($content);
//Sample output
echo 'before';
var_dump(trim($content));
echo '<hr />';
echo 'after';
var_dump(trim($contentx));
echo '<hr />';
echo '<b>actual</b>';
echo '<br />';
echo $contentx;
function frame_external_links($content) {
$top_frame = 'http://anonymouse.org/cgi-bin/anon-www.cgi/';
$pat = '@<a .*href="(.*)"@isU';
preg_match_all($pat, $content, $m_links);
if (!$m_links) {
//no links found, just return original content
return $content;
}
$contentx = $content;
foreach ($m_links[1] as $mctr => $link) {
$process_this = 0;
switch ($link) {
case '#':
case '':
$process_this = 0;
break;
default:
//check if the link starts with the following patterns
if (substr($link, 0, 1) == '/') {
$process_this = 0;
} else if (stristr($link, 'https://')) {
$process_this = 1;
} else if (stristr($link, 'http://')) {
$process_this = 1;
}
}
if (!$process_this) {
//Check next link
continue;
}
$prev_link = $m_links[0][$mctr];
$new_link = $top_frame . $link;
$new_link .= '" target="_blank';
$replaced = str_replace($link, $new_link, $prev_link);
$contentx = str_replace($prev_link, $replaced, $contentx);
}
return $contentx;
}

لینک به ارسال

مشکلاتتون رو مطرح کنید

نیازی به پیام خصوصی نیست

[sharedmedia=tutorials:tutorials:300]

لینک به ارسال
  • 4 ماه بعد...

سلام جناب استاد

اول تشکر می کنم بابت آموزش.چند وقتی بود دنبال این کد می گشتم.اما چند مورد مبهم در آموزش بود

فرموده بودید

خوب فرض می کنیم برگه اول را با نام news.php ذخیره کردید یک زمینه دلخواه برای مطالب خبری تهیه می کنید که آدرس منبع را در آن قرار دهید (توضیح افزونه feedwordpress این زمینه را با نام syndication_permalink ایجاد می کند )

این مطلب رامی تونید روشن تر توضیح بدید؟

آیا باید فایل news.php و header.html به پوشه پوسته منتقل بشه؟

مسئله بعدی اینکه

در کد news.php عبارت


<script type="text/javascript">
<!--
window.location="آدرس سایت شما "
//-->
</script>

آدرس سایت باید صرفا آدرس سایت مادر باشه یا اینکه آدرس کد single.php منظور هست؟

در صورتیکه بخواهیم به header.html کد های وردپرس سایت مادر را وارد کنیم راهکار شما چیه؟

پیشاپیش از زحمات شما تشکر می کنم استاد عزیز

لینک به ارسال

فایلها را در پوشه پوسته قرار دهید

آدرس برای زمانی هست که مقدار u مقداردهی نشده باشد .

آدرس صفحه اصلی را قرار دهید

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

نحوه استفاده از توابع وردپرس در فایل جدا

لینک به ارسال

ممنون پارسای عزیز

البته با تمام لطف شما هنوز قضیه برای من مبهمه

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

بگذارید از اول براتون توضیح بدم

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

تابعی که باید در کد جاسازی بشه چیه؟

اصلاٌ صفحه news.php چجوری باید فراخونده بشه؟

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

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

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

لینک به ارسال

1- بله. شما باید لینک مطلب را ویرایش کنید و آدرس فایل مربوط در آموزش را ابتدا قرار دهید. بستگی به شیوه طراحی شما دارد

2- برای چه کاری؟

3- صفحه news:


<a href="<?php bloginfo('template_url'); ?>/news.php?u=http://google.com

4- زمینه‌ای به نام news_permalink و با مقدار آدرس مورد نظر

لینک به ارسال

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

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

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

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

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

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

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

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

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