2009-08-23 26 views
0

私はthe_guid()機能を削除しようとしていますが、これはfeed-rss2.phpに表示されます。私はremove_action('rss2_item', 'the_guid')またはremove_filterを試しましたが、何も起こりません。私はまたthe_content_rssのような別のフックを試しました...WordPress RSSフィードで関数をプログラムで削除するにはどうすればよいですか?

feed-rss2.phpの行43に機能が表示され、<item></item>で囲まれています。

更新

echo current_filter()で、私はフックがdo_feed_rss2であることがわかりました。しかし、私はまだ機能を削除することはできません。

+0

'GUID'ノード全体または関数だけを取り除き、その値を自分のバージョンに置き換えたいですか? – random

+0

関数を鉱山で置き換えてください。 – anno

答えて

1

フィルタを介してその関数の出力を上書きできます。

add_filter('get_the_guid','my_get_the_guid'); 
function my_get_the_guid($guid) { 
    $my_guid = 'foo'; 
    return $my_guid; 
} 

これを使用すると、GUID出力を任意のもので上書きできます。 RSS出力でノードを削除することはできませんが、その内容を制御することはできます。すべてのノードを一括して削除する場合は、独自のXMLテンプレートを作成してテーマに保存した後、template_redirectアクションを使用して、デフォルトではなくテンプレートを強制的にロードします。

希望に役立ちます!

+0

それは動作します!ありがとう。 – anno

0

は/wp-includes/feed-rss2.phpにライン40のようになります。

<guid isPermaLink="false"><?php the_guid(); ?></guid> 

はそれを削除してみてくださいと何が起こるかをご覧ください。これはファイル内のthe_guidへの唯一の参照です

+0

削除は正常です。私はそれをプラグインまたはfunctions.phpを介して自動的に削除し(そして別のものに置き換える)、WordPressの各アップグレード後に手動で変更する必要はありません。 – anno

1

フィードラングラープラグインは、フィードをカスタマイズするための素晴らしい作品:

http://wordpress.org/extend/plugins/feed-wrangler/

基本的には、プラグインをインストールし、スラグとのフィードを表す(例:無GUID)、その後、フィード繊維を追加no-guid.phpファイルをあなたのテーマに追加してください。 wp-includes/のデフォルトのフィードファイルをベースとして使用して、必要な項目を削除または追加することができます。そうすれば、フィードの完全な制御と将来の明確なアップグレードパスを得ることができます。

関連する問題