Добавление категорий товаров и тегов в RSS-канал Woocommerce - PullRequest
0 голосов
/ 14 февраля 2020

Привет. Я пытаюсь добавить категории и теги в канал RSS моего магазина Woocommerce. Обычный RSS-канал сайта Wordpress включает их, но они исключены из магазина. Я думаю, что эта часть файла wp_includes / feed. php нуждается в редактировании, чтобы решить эту проблему, но я не уверен, как.

function get_the_category_rss( $type = null ) {
if ( empty( $type ) ) {
    $type = get_default_feed();
}
$categories = get_the_category();
$tags       = get_the_tags();
$the_list   = '';
$cat_names  = array();

$filter = 'rss';
if ( 'atom' == $type ) {
    $filter = 'raw';
}

if ( ! empty( $categories ) ) {
    foreach ( (array) $categories as $category ) {
        $cat_names[] = sanitize_term_field( 'name', $category->name, $category->term_id, 'category', $filter );
    }
}

if ( ! empty( $tags ) ) {
    foreach ( (array) $tags as $tag ) {
        $cat_names[] = sanitize_term_field( 'name', $tag->name, $tag->term_id, 'post_tag', $filter );
    }
}

$cat_names = array_unique( $cat_names );

foreach ( $cat_names as $cat_name ) {
    if ( 'rdf' == $type ) {
        $the_list .= "\t\t<dc:subject><![CDATA[$cat_name]]></dc:subject>\n";
    } elseif ( 'atom' == $type ) {
        $the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', esc_attr( get_bloginfo_rss( 'url' ) ), esc_attr( $cat_name ) );
    } else {
        $the_list .= "\t\t<category><![CDATA[" . html_entity_decode( $cat_name, ENT_COMPAT, get_option( 'blog_charset' ) ) . "]]></category>\n";
    }
}

/**
 * Filters all of the post categories for display in a feed.
 *
 * @since 1.2.0
 *
 * @param string $the_list All of the RSS post categories.
 * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
 *                         Default 'rss2'.
 */
return apply_filters( 'the_category_rss', $the_list, $type );
}

/**
 * Display the post categories in the feed.
 *
 * @since 0.71
 * @see get_the_category_rss() For better explanation.
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 */
function the_category_rss( $type = null ) {
    echo get_the_category_rss( $type );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...