web-dev-qa-db-fra.com

Supprimer ou modifier <dc: creator> dans les flux

Souhaitez supprimer <dc:creator> ou le modifier pour qu'il soit une valeur statique sans modifier les fichiers Wordpress principaux. De préférence en fonction.

3
Picard102
  1. Copiez /wp-includes/feed-rss2.php dans votre dossier de thèmes

  2. Modifiez-le et apportez les modifications souhaitées (par exemple, en supprimant la ligne pour dc:creator).

  3. dans le fichier functions.php de votre thème, ajoutez la fonction suivante:

remove_all_actions( 'do_feed_rss2' );  
function create_my_custom_feed() {  
    load_template( TEMPLATEPATH . '/feed-rss2.php');  
}  
add_action('do_feed_rss2', 'create_my_custom_feed', 10, 1);

Edit by Otto : Bien que cela fonctionne, ce serait un meilleur moyen:

function create_my_custom_feed() {  
    load_template( TEMPLATEPATH . '/feed-rss2.php');  
}  
add_feed('rss2', 'create_my_custom_feed');

La fonction add_feed() est intelligente et gérera les actions et autres pour vous.

Note: Il faudra utiliser une seule fois flush_rules() pour prendre effet.

5
Biranit Goren

J'allais utiliser le answer d'Otto ci-dessus, mais plus je regardais les modèles, plus je réalisais que vous n'aviez pas besoin de tout cela.

Il suffit de raccrocher the_author filtrer et de vérifier is_feed si vous voulez un auteur spécifique à RSS.

function f_the_author( $display_name ) {

    // $display_name === string $authordata->display_name

    if ( is_feed() ) {
        return 'Static Feed Author Display Name Here';
    }

    return "Static Author Display Name";
}

add_filter( 'the_author', 'f_the_author', PHP_INT_MAX, 1 );
4
jgraup

Pour ceux qui ne veulent pas faire un piratage de script PHP. Le champ affiche simplement le nom de l'auteur de la publication. Si vous souhaitez modifier son libellé, accédez à WP admin, puis à "Utilisateurs" -> "Votre profil" (ou à l'utilisateur spécifique que vous souhaitez modifier). Puis changez le champ 'Nom public en tant que' en ce que vous voulez afficher dans le flux RSS.

1
Daniel Chase

Malheureusement, cet élément est codé en dur dans le noyau de WordPress. Regardez /wp-includes/feed-rss2.php:

<item>
    <title><?php the_title_rss() ?></title>
    <link><?php the_permalink_rss() ?></link>
    <comments><?php comments_link_feed(); ?></comments>
    <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
    <dc:creator><?php the_author() ?></dc:creator>
    <?php the_category_rss('rss2') ?>

    <guid isPermaLink="false"><?php the_guid(); ?></guid>
<?php if (get_option('rss_use_excerpt')) : ?>
    <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php else : ?>
    <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
    <?php if ( strlen( $post->post_content ) > 0 ) : ?>
        <content:encoded><![CDATA[<?php the_content_feed('rss2') ?>]]></content:encoded>
    <?php else : ?>
        <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
    <?php endif; ?>
<?php endif; ?>
    <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss>
    <slash:comments><?php echo get_comments_number(); ?></slash:comments>
<?php rss_Enclosure(); ?>
<?php do_action('rss2_item'); ?>
</item>
0
EAMann