次のコード(古い投稿は はこちら 、投稿者は diggy です)です。便利ですが、添付ファイルだけでなく、最近のコメントウィジェットに投稿やページを表示したいのですが。
function wpse80087_widget_comments_args( $args )
{
$args = array( 'number' => 5, 'post_type' => 'attachment', 'status' => 'approve', 'post_status' => 'inherit' );
return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );
出来ますか?
溶液:
Pieter Goosen と Birgire に感謝します。
最初のステップ:
第2ステップ:
function.php
function wpse80087_widget_comments_args( $args ) {
$args = array(
'number' => 9,
'post_type' => array('attachment', 'post', 'page'),
);
return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );
このサイトから見つけたカスタム関数を既に使用しているようです。あなたはそのコードの原作者を信用するべきです。
widget_comments_args
フィルタはWordpress3.4で導入されました。このフィルタはあまり文書化されていません。このフィルタは get_comments()
を使うので、同じパラメータを使うこともできます。これは のフィルターです。wp-includes/default-widgets.php#L847
847 /**
848 * Filter the arguments for the Recent Comments widget.
849 *
850 * @since 3.4.0
851 *
852 * @see get_comments()
853 *
854 * @param array $comment_args An array of arguments used to retrieve the recent comments.
855 */
856 $comments = get_comments( apply_filters( 'widget_comments_args', array(
857 'number' => $number,
858 'status' => 'approve',
859 'post_status' => 'publish'
860 ) ) );
get_comments()
には問題があります。なぜなら、それは実際にはかなり面白い配列や文字列ではなく、1つの投稿タイプしか受け付けないからです。この辺りにはありません。
サイトのメンバーの一人 @ birgire が という名前のプラグインを書いていますwp-comments-from-mulitple-post get_comments
およびWP_Comment_Query()
に複数の投稿タイプを受け付ける機能を追加するには、-types を使用します。あなたは彼のプラグイン をここからダウンロードすることができます
インストールの後、あなたは今このようにあなたのコードを使うことができます
function wpse80087_widget_comments_args( $args ) {
$args = array(
'number' => 5,
'post_type' => array('attachment', 'post',' page'),
);
return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );
編集
OPからのフィードバックから、status
またはpost_status
のいずれかが機能しておらず、1つの投稿タイプのみを返すように思われます。これらのパラメータを削除すると、すべて正常に機能します。上の更新されたコードを見てください
Widget_posts_argsを使用して、そのデフォルトウィジェット用のget_comments関数内の引数を変更します。
このようなもの:
function wpsites_widget_comments_args( $args ) {
$args = array(
'post_type' => array( 'attachment', 'post', 'page'),
'number' => $number,
'status' => 'approve',
'post_status' => 'publish' );
return $args;
}
add_filter( 'widget_comments_args', 'wpsites_widget_comments_args', 10, 1 );
任意の get_comments
パラメータを使用できます。それ以外の場合は、WordPress> wp-includes> default-widgetsから code for the recent comments widget
を上書きコピーできます。 phpファイルを作成し、get_comments関数をWP_Queryに置き換えて、子テーマまたはプラグインにカスタムの最近のコメントウィジェットを作成します。