web-dev-qa-db-ja.com

フィード内の<dc:creator>を削除または編集します

コアのWordpressファイルを編集せずに<dc:creator>を削除するか、静的な値になるように編集します。できれば関数として。

3
Picard102
  1. /wp-includes/feed-rss2.phpをあなたのテーマフォルダにコピーしてください

  2. それを編集して、あなたが望むあらゆる変更を加えてください(例えばdc:creatorのための行を削除する)

  3. テーマのfunctions.phpファイルに、次の関数を追加します。

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);

Ottoによる編集:これでうまくいくでしょうが、これはより良い方法です。

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

add_feed() 関数は賢く、あなたのためにアクションなどを処理します。

:有効にするには、 flush_rules() を1回使用する必要があります。

5
Biranit Goren

私はOttoからの上記の 答え を使うつもりでしたが、私がテンプレートを見るほど、それを必要としていないことがわかりました。 。

RSS固有の作者が欲しい場合は、フック the_author フィルタしてチェック is_feed

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

PHPスクリプトハックをしたくない人のために。フィールドは単に投稿の著者名を表示します。表示内容を変更する場合は、WP管理者に移動し、次に[ユーザー] - > [あなたのプロフィール]に移動します(または変更したい特定のユーザーに移動します)。次に、[名前を公に表示]フィールドをRSSフィードに表示するものに変更します。

1
Daniel Chase

残念ながら、その要素はWordPressコアにハードコードされています。 /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