-
عضو انجمن
چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
سلام اساتید بزرگوار
من میخوام اون مطالبی که مثلا دارای کلمه دانلود هستند را از لیست RSS زیر حذف کنم
چطور میتونم خودم از روش شرط گذاری استفاده کردم ولی
اگه شرط بگذارم هیچ مطلبی دیگه ای را نمایش نمیده
کد PHP:
//شرط منع کلمه
$mystring = $item_title;
$findme = 'دانلود ';
$pos = strpos($mystring, $findme);
if ($pos === false) {
{
میشه اساتید راهنمایی کنید
کد PHP:
<?php
echo '<meta charset="UTF-8">';
error_reporting(E_ALL);
$xml = file_get_contents('http://yoursite.com/feed/');
// MUNG THE XML BECAUSE WE DO NOT HAVE THE NAMESPACE INFORMATION
$xml = str_replace('content:encoded', 'content__encoded', $xml);
$xml = str_replace('isc:', 'isc__', $xml);
// CONVERT THE XML TO AN OBJECT
$obj = SimpleXML_Load_String($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
// GET SOME FIELDS
foreach($obj->channel->item as $item)
{
$item_title = $item->title;
$item_link = $item->link;
$item_description = $item->description;
$item_enclosure = $item->enclosure->attributes()->url;
echo "<br/><strong>$item_title</strong> $item_description<br/>$item_enclosure";
}
?>
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
June 8th, 2016 23:46
# ADS
-
عضو انجمن
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
کد:
<?php
echo '<meta charset="UTF-8">';
error_reporting(E_ALL);
$xml = file_get_contents('http://yoursite.com/feed/');
// MUNG THE XML BECAUSE WE DO NOT HAVE THE NAMESPACE INFORMATION
$xml = str_replace('content:encoded', 'content__encoded', $xml);
$xml = str_replace('isc:', 'isc__', $xml);
// CONVERT THE XML TO AN OBJECT
$obj = SimpleXML_Load_String($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
// GET SOME FIELDS
foreach($obj->channel->item as $item)
{
$item_title = $item->title;
$item_link = $item->link;
$item_description = $item->description;
$item_enclosure = $item->enclosure->attributes()->url;
// check
$mystring = $item_title;
$findme = 'دانلود ';
$pos = strpos($mystring, $findme);
if($pos)
continue;
echo "<br/><strong>$item_title</strong> $item_description<br/>$item_enclosure";
}
?>
-
تعداد تشکر ها ازrezaonline.net به دلیل پست مفید
-
عضو انجمن
ویرایش توسط saeed.spore : June 8th, 2016 در ساعت 23:57
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
عضو دائم
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
مشکل داره همینطور منم درست کردم ولی
صفحه را خالی میکنه ؟ روشی اساتید محترم دم دست ندارند
سلام، یعنی چی صفحه را خالی میکند ؟ صفحه سفید نمایش میدهد؟ ممکن است شرط در تمامی $item_title پیدا میکند که چیزی نمایش نمیدهد، آدرس فید هم قرار دهید چک کنم.
-
تعداد تشکر ها از T.Toosi به دلیل پست مفید
-
عضو انجمن
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
ببینید من echo. را داخل شرط قرار دادم دیگه هیچ چیزی را نمایش نمیده
سایت http://www.11-taktaraneh.com/
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
عضو انجمن
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند

نوشته اصلی توسط
T.Toosi
سلام، یعنی چی صفحه را خالی میکند ؟ صفحه سفید نمایش میدهد؟ ممکن است شرط در تمامی $item_title پیدا میکند که چیزی نمایش نمیدهد، آدرس فید هم قرار دهید چک کنم.
من میخوام تایتل هایی که دارای کلمه مویک ویدئو هستند از لیست Feed حذف کنم
دانلود موزیک ویدئوی Justin Bieber – Company
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
عضو دائم
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
کد PHP:
<?php
echo '<meta charset="UTF-8">';
error_reporting(E_ALL);
$xml = file_get_contents('http://yoursite.com/feed/');
// MUNG THE XML BECAUSE WE DO NOT HAVE THE NAMESPACE INFORMATION
$xml = str_replace('content:encoded', 'content__encoded', $xml);
$xml = str_replace('isc:', 'isc__', $xml);
// CONVERT THE XML TO AN OBJECT
$obj = SimpleXML_Load_String($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
// GET SOME FIELDS
foreach($obj->channel->item as $item)
{
$item_title = $item->title;
$item_link = $item->link;
$item_description = $item->description;
$item_enclosure = $item->enclosure->attributes()->url;
if(strpos($item_title, 'موزیک ویدئو')) return;
echo "<br/><strong>$item_title</strong> $item_description<br/>$item_enclosure";
}
?>
-
-
عضو انجمن
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند

نوشته اصلی توسط
t.toosi
کد PHP:
<?php
echo '<meta charset="utf-8">';
error_reporting(e_all);
$xml = file_get_contents('http://yoursite.com/feed/');
// mung the xml because we do not have the namespace information
$xml = str_replace('content:encoded', 'content__encoded', $xml);
$xml = str_replace('isc:', 'isc__', $xml);
// convert the xml to an object
$obj = simplexml_load_string($xml, 'simplexmlelement', libxml_nocdata);
// get some fields
foreach($obj->channel->item as $item)
{
$item_title = $item->title;
$item_link = $item->link;
$item_description = $item->description;
$item_enclosure = $item->enclosure->attributes()->url;
if(strpos($item_title, 'موزیک ویدئو')) return;
echo "<br/><strong>$item_title</strong> $item_description<br/>$item_enclosure";
}
?>
خیلی ممنون کار کرد ولی مشکلی که هست اینه که الان تا مطلبی که موزیک ویدئوی میرسته اون مطلب را نمایش میده و بقیه را نمایش نمیده
یک سوال استاد
میشه از آرایه برای لیست کلماتی که منع میخوام بکنیم در rss استفاده کرد مثلا
به این شکل
؟!
$targets = array('موزیک ویدئوی', 'دانلود موزیک ویدئوی' );
if(strpos($item_title, $targets)) return;
ویرایش توسط saeed.spore : June 9th, 2016 در ساعت 13:08
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند
سلام
اینو همینطوری بر اساس کد معرفی شده در این لینک http://wordpress.stackexchange.com/q...post-from-feed نوشتم خودم وردپرس نداشتم تستش کنم نمی دونم کار میکنه یا نه.
باید در فایل functions.php قالب بذاریدش خودکار واژه هایی که در آرایه bad_titles است رو قراره که انشاءالله از rss حذف کنه 
کد:
<?php
function rss_exclude_filter($query){
global $wpdb;
if (!$query->is_admin && $query->is_feed) {
$bad_titles = array('موزیک ویدئو', 'تست ویدئو');
$bad_posts = array();
foreach ($bad_titles as $title){
$posts = $wpdb->get_col("select ID from $wpdb->posts where post_title LIKE '%$title%' ");
foreach ($posts as $post){
$bad_posts[] = $post;
}
}
$query->set('post__not_in', $bad_posts);
}
return $query;
}
add_filter('pre_get_posts', 'rss_exclude_filter');
?>
البته ظاهراً با افزونه https://wordpress.org/plugins/stealth-publish/ هم می تونید براحتی این کار رو انجام بدید.
-
-
June 9th, 2016, 13:34
#10
عضو انجمن
پاسخ : چگونه حذف مطالبی که دارای یک کلمه یا متن خاصی هستند

نوشته اصلی توسط
iHSG
سلام
اینو همینطوری بر اساس کد معرفی شده در این لینک
http://wordpress.stackexchange.com/q...post-from-feed نوشتم خودم وردپرس نداشتم تستش کنم نمی دونم کار میکنه یا نه.
باید در فایل functions.php قالب بذاریدش خودکار واژه هایی که در آرایه bad_titles است رو قراره که انشاءالله از rss حذف کنه
کد:
<?php
function rss_exclude_filter($query){
global $wpdb;
if (!$query->is_admin && $query->is_feed) {
$bad_titles = array('موزیک ویدئو', 'تست ویدئو');
$bad_posts = array();
foreach ($bad_titles as $title){
$posts = $wpdb->get_col("select ID from $wpdb->posts where post_title LIKE '%$title%' ");
foreach ($posts as $post){
$bad_posts[] = $post;
}
}
$query->set('post__not_in', $bad_posts);
}
return $query;
}
add_filter('pre_get_posts', 'rss_exclude_filter');
?>
البته ظاهراً با افزونه
https://wordpress.org/plugins/stealth-publish/ هم می تونید براحتی این کار رو انجام بدید.
ممنون ولی من برای وردپرس لازم ندارم
درسته سایت منبع وردپرس هست ولی من برای سیستم دیگه ای دارم این کارا میکنم و مشکل بزرگی که دارم تنها سایتی که به روز و دارای فایل های MP3 همین سایت در ( RSS )
اگه بتونم یک سری مطالب که دارای اینکلمه هستند را منع کنم از حلقه Foreach خیلی خوب میشه
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-