web-dev-qa-db-ja.com

最近のコメントウィジェットに添付ファイル、投稿、ページを表示する

次のコード(古い投稿は はこちら 、投稿者は 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 GoosenBirgire に感謝します。

最初のステップ:

プラグイン

第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 );
1
user3720387

このサイトから見つけたカスタム関数を既に使用しているようです。あなたはそのコードの原作者を信用するべきです。

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つの投稿タイプのみを返すように思われます。これらのパラメータを削除すると、すべて正常に機能します。上の更新されたコードを見てください

0
Pieter Goosen

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に置き換えて、子テーマまたはプラグインにカスタムの最近のコメントウィジェットを作成します。

0
Brad Dalton