سلام اساتید بزرگوار
من میخوام اون مطالبی که مثلا دارای کلمه دانلود هستند را از لیست RSS زیر حذف کنم
چطور میتونم خودم از روش شرط گذاری استفاده کردم ولی
اگه شرط بگذارم هیچ مطلبی دیگه ای را نمایش نمیده
// 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";
}
?>
// 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;
// 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;
مشکل داره همینطور منم درست کردم ولی
صفحه را خالی میکنه ؟ روشی اساتید محترم دم دست ندارند
- - - Updated - - -
(:| :->
T.Toosi
June 9th, 2016, 08:56
مشکل داره همینطور منم درست کردم ولی
صفحه را خالی میکنه ؟ روشی اساتید محترم دم دست ندارند
سلام، یعنی چی صفحه را خالی میکند ؟ صفحه سفید نمایش میدهد؟ ممکن است شرط در تمامی $item_title پیدا میکند که چیزی نمایش نمیدهد، آدرس فید هم قرار دهید چک کنم.
saeed.spore
June 9th, 2016, 10:13
ببینید من echo. را داخل شرط قرار دادم دیگه هیچ چیزی را نمایش نمیده
سایت http://www.11-taktaraneh.com/
saeed.spore
June 9th, 2016, 12:10
سلام، یعنی چی صفحه را خالی میکند ؟ صفحه سفید نمایش میدهد؟ ممکن است شرط در تمامی $item_title پیدا میکند که چیزی نمایش نمیدهد، آدرس فید هم قرار دهید چک کنم.
من میخوام تایتل هایی که دارای کلمه مویک ویدئو هستند از لیست Feed حذف کنم
دانلود موزیک ویدئوی Justin Bieber – Company
// 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;
// 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;
خیلی ممنون کار کرد ولی مشکلی که هست اینه که الان تا مطلبی که موزیک ویدئوی میرسته اون مطلب را نمایش میده و بقیه را نمایش نمیده
یک سوال استاد
میشه از آرایه برای لیست کلماتی که منع میخوام بکنیم در rss استفاده کرد مثلا
به این شکل
؟!
سلام
اینو همینطوری بر اساس کد معرفی شده در این لینک http://wordpress.stackexchange.com/questions/56853/remove-specific-page-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/ هم می تونید براحتی این کار رو انجام بدید.
saeed.spore
June 9th, 2016, 13:34
سلام
اینو همینطوری بر اساس کد معرفی شده در این لینک http://wordpress.stackexchange.com/questions/56853/remove-specific-page-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 خیلی خوب میشه