• Здравствуйте помогите решить проблему.
    Произвольное поле enclosure отдает в исходящую ленту RSS

    <enclosure
    url="http://libymax.ru/wp-content/uploads/2009/12/nuclear.jpg" length=""
    type="" />

    А необходимо:

    <enclosure
    url="http://libymax.ru/wp-content/uploads/2009/12/nuclear.jpg" length=""
    type="image/jpeg"/>

    Как правильно прописать ‘ type=»image/jpeg ‘ ?
    Пробовал указывать меняя в стандартном

    <?php rss_enclosure(); ?>

    Менял указывая :

    <?php rss_enclosure('image/jpeg'); ?>

    и так

    <?php rss_enclosure(type'image/jpeg'); ?>

    Ничего не получалось. исходник тот же. Подскажите как правильно указать тип изображения?
    p.s. Это для Яндекса.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Ну помогите кто нибуууууууууудь…..

    <?php
    /*
    Plugin Name: Yandex RSS2 Export Feed for WordPress 2.6+
    Plugin URI: http://www.code.google.com/p/yandex-feed
    Description: Export RSS2 for Yandex
    Author: Trinity Solution LLC (coded by Madness), changed for WordPress 2.6++, 2.7 by Sherif aka sharof2000 (sharof2000@gmail.com)
    Version: 1.4++
    Author URI: http://www.seo-study.ru
    */
    
    if (empty($wp)) {
    	require_once('wp-config.php');
    	//wp('feed=rss2');
    }
    
    function filter_text($content) {
    	$content = preg_replace( "/(\[).*?(\])/", "" , $content);
    	return $content;
    }
    
    function get_posts_my($category, $numberposts, $days) {
    	global $wpdb;
    
    	$posts = $wpdb->get_results(
    		"SELECT * FROM $wpdb->posts p
    			INNER JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id)
    			INNER JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
    			INNER JOIN $wpdb->terms t ON (tt.term_id = t.term_id)
    			WHERE tt.taxonomy = 'category' AND p.post_type = 'post' AND p.post_status = 'publish' AND t.term_id IN (".$category.")
    			AND TO_DAYS(NOW()) - TO_DAYS(post_date) <= ".intval($days)."
    			GROUP BY p.ID ORDER BY p.post_date DESC LIMIT ".intval($numberposts));
    
    	return $posts;
    }
    $options = get_option('rss_yandex_options');
    $posts = get_posts_my(@implode(',', $options['list_categories']), $options['num_posts'], $options['days']);
    
    @header('Content-type: text/xml; charset=' . get_settings('blog_charset'), true);
    $more = 1;
    echo '<?xml version="1.0" encoding="'.get_settings('blog_charset').'"?>
    '; ?><!-- generator="wordpress/<?php bloginfo_rss('version') ?>" -->
    <rss version="2.0"
    	xmlns="http://backend.userland.com/rss2"
    	xmlns:yandex="http://news.yandex.ru">
    <channel>
    	<title><?php echo htmlspecialchars(get_bloginfo_rss('name'),ENT_QUOTES); ?></title>
    	<link><?php echo htmlspecialchars(get_bloginfo_rss('url'),ENT_QUOTES); ?></link>
    	<description><?php echo htmlspecialchars(get_bloginfo_rss('description'),ENT_QUOTES); ?></description>
    	<image>
    		<url><?php echo htmlspecialchars($options['image_url'],ENT_QUOTES); ?></url>
    		<title><?php echo htmlspecialchars($options['image_title'],ENT_QUOTES); ?></title>
    		<link><?php echo htmlspecialchars(get_bloginfo_rss('url'),ENT_QUOTES); ?></link>
    	</image>
    <?php	$items_count = 0;
    	if ($posts)
    	{
    		foreach ($posts as $post)
    		{
    			start_wp();?>
    	<item>
    		<title><?php /* echo htmlspecialchars(get_the_title_rss(),ENT_QUOTES);*/ echo filter_text( apply_filters('the_content_rss', get_the_title_rss()) ); ?></title>
    		<link><?php echo htmlspecialchars(get_permalink(),ENT_QUOTES); ?></link>
    		<pdalink><?php echo htmlspecialchars(get_permalink(),ENT_QUOTES); ?></pdalink><?php
    			if ($options['description'])
    			{
    				$description = get_the_excerpt(true);
                                    // remove copyrights
                                    $description = preg_replace('#(/\*.*?\*/)#i', '', $description);
                                    $description = apply_filters('get_the_excerpt', $description);
                                    $description = apply_filters('the_excerpt_rss',$description);
                                    $description =  filter_text( $description );
    				echo "\n\t\t<description>".$description."</description>\n";
    			}
    ?>
    		<author><?php the_author() ?></author>
    		<?php echo "<category>".get_the_category_by_ID($post->term_id)."</category>\n"; ?>
    		<?php rss_enclosure(---ЧТО СЮДА ВСТАВИТЬ?---); ?>
    		<pubDate><?php
    			$gmt_offset = get_option('gmt_offset');
    			$gmt_offset = ($gmt_offset>9)?$gmt_offset:('0'.$gmt_offset.'00');
    			echo mysql2date('D, d M Y H:i:s +'.$gmt_offset, get_date_from_gmt(get_post_time('Y-m-d H:i:s', true)), false); ?></pubDate>
    		<yandex:full-text><?php
    
    			$content = get_the_content('', 0, '');
    			$content = apply_filters('the_content_rss', $content);
    			$content = filter_text($content);
                            // Remove copyrights
                            $content = preg_replace('#(/\*.*?\*/)#i', '', $content);
    
    			echo (htmlspecialchars(strip_tags($content, ENT_QUOTES)));
    			//the_content_rss('', 0, '');
    ?></yandex:full-text>
    	</item>
    <?php			$items_count++;
    			/*if (($items_count == get_settings('posts_per_rss')) && empty($m))
    			{
    				break;
    			}*/
    		}
    	} ?>
    </channel>
    </rss>

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    1. Теперь хотя бы понятно, что речь идёт о плагине 🙂 Непонятно другое: enclosure используется для аудио- и видеофайлов — в этом случае тип определяется корректно. Откуда и для чего там изображение?
    2. Прописывать что-либо при вызове rss_enclosure() нет смысла — функция не имеет параметров.

    Спасибо Сергей!
    Для яндекс ленты новостей этот параметр.
    Может через произвольные поля я неправильно добавляю картинку ?
    Сама картинка в исходном RSS (http://libymax.ru/yandex-feed) имеет следующий вид:

    <enclosure url="http://libymax.ru/wp-content/uploads/2009/12/swinfort_toll_bridge.jpg" length="" type="" />

    Но Я-кс требует :

    <enclosure url="http://libymax.ru/wp-content/uploads/2009/12/swinfort_toll_bridge.jpg" length="" type="image/jpeg" />

    такого вида чтобы было.
    Я enclosure прописываю в произвольных полях при добавлении материала и указываю на загруженную картинку http://libymax.ru/wp-content/uploads/2009/12/swinfort_toll_bridge.jpg
    Но параметр type для изображений не указывается в исходном коде, а должен быть jpeg. Может по другому добавлять этот параметр или …?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Значение enclosure должно состоять из трёх строк:

    http://libymax.ru/wp-content/uploads/2009/12/swinfort_toll_bridge.jpg
    58894
    image/jpeg

    Вторая строка — размер файла в байтах, третья — тип.

    Сергей!!!!!!!! Я так и знал что этот ларчик не надо было раскапывать с другой стороны поля))) СПАСИБО ОГРОМНОЕ ВАМ!!!!!!!!! РЕСПЕКТ!

Просмотр 5 ответов — с 1 по 5 (всего 5)

Тема «enclosure» закрыта для новых ответов.