以数组形式返回PAGINATE_COMMENTS_LINKS()

时间:2013-12-04 作者:Vigs

这个documentation 指定:

类型(字符串)(可选)控制返回值的格式。可能的值包括:

“普通”-链接由换行符分隔的字符串为了将推特引导分页样式添加到wordpress评论分页中,我希望返回是一个数组。

当我在通话中添加$args时,我得不到任何回报。

我的代码:

<ol class="commentlist" style="list-style: none;">
    <?php wp_list_comments(\'type=comment&callback=advanced_comment\'); ?>
</ol>
<div class="clear"></div>
<div class="pagination">
    <?php 
    $args = array(
    \'base\'         => \'%_%\',
    \'format\'       => \'?page=%#%\',
    \'total\'        => 1,
    \'current\'      => 0,
    \'show_all\'     => False,
    \'end_size\'     => 1,
    \'mid_size\'     => 2,
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'« Previous\'),
    \'next_text\'    => __(\'Next »\'),
    \'type\'         => \'array\',
    \'add_args\'     => False,
    \'add_fragment\' => \'\'
    ); 
    paginate_comments_links($args); 
    ?> 
</div>
这是因为我正在使用自定义回调wp_list_comments?

我的advanced_comment() 回调:

<?php
function delete_comment_link($id)
{
    if (current_user_can(\'edit_post\'))
    {
    echo \'<a href="\'.admin_url("comment.php?action=cdc&c=$id").\'" class="btn btn-default">del</a> \';
    echo \'<a href="\'.admin_url("comment.php?action=cdc&dt=spam&c=$id").\'" class="btn btn-default">spam</a>\';
    }
} 
function advanced_comment($comment, $args, $depth)
{
$GLOBALS[\'comment\'] = $comment; ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
    <div class="panel panel-default">
        <div class="panel-heading"><?php comment_author(); ?> says: <?php echo substr(get_comment_excerpt(), 0, 25) . "..."; ?></div>
        <div class="panel-body">
            <div class="col-md-1">
            <?php echo get_avatar($comment,$size=\'75\',$default=\'<path_to_url>\' ); ?>
            </div>
            <?php if ($comment->comment_approved == \'0\') : ?>
            <em><?php _e(\'Your comment is awaiting moderation.\') ?></em>
            <br />
            <?php endif; ?>

            <div class="comment-text col-md-10">
            <div class="comment-meta">
                <?php echo get_comment_author_link($comment->ID); ?>
            </div>
            <small>
                <?php printf(__(\'%1$s at %2$s\'), get_comment_date(),  get_comment_time()) ?><?php edit_comment_link(__(\'(Edit)\'),\'  \',\'\') ?>
            </small>             
                <?php comment_text() ?>
            </div>

            <div class="btn-group float-right">
            <?php echo get_comment_reply_link(array_merge( $args, array(\'depth\' => $depth, \'max_depth\' => $args[\'max_depth\'], \'before\' => "<span class=\'btn btn-default\'>", \'after\' => \'</span>\'))) ?>
            <?php delete_comment_link(get_comment_ID()); ?>
            </div>
            <div class="clear"></div>
        </div>
    </div>
</li>   
<?php 
}
请注意:paginate_comments_links() 如果我不通过,效果很好$args.

解决方案:

<ul class="pagination">
    <?php 
        $pages = paginate_comments_links( array( \'echo\' => false, \'type\' => \'array\' ) );
        foreach($pages as $page)
        {
        echo "<li>" . $page . "</li>";
        }
    ?>
</ul>

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

首先要说的是,你不能说你没有被警告过——参见codex页面paginate_comments_links(), 第»节默认值«:

这些论点主要是为了paginate_links() 工作,所以be careful if you change them.

这是真的,paginate_comments_links() 几乎只是一个已经定制的评论版本paginate_links(), 使用这些默认值可以实现此功能:

添加查询参数(\'cpage\',\'%\\%\'),\'format\',\'total\'=>$max\\u页面,\'current\'=>$页面,\'echo\'=>true,\'add\\u fragment\'=>\'注释\'paginate_comment_links() 默认值为paginate_links(), 这导致评论链接不再工作。如果我看得没错,您要更改的唯一参数是type, 所以这是你唯一要通过的考试。

像这样:

$args = array( 
    \'type\' => \'list\' 
);
paginate_comments_links( $args );
或:

paginate_comments_links( array( \'type\' => \'list\' ) );

结束
以数组形式返回PAGINATE_COMMENTS_LINKS() - 小码农CODE - 行之有效找到问题解决它

以数组形式返回PAGINATE_COMMENTS_LINKS()

时间:2013-12-04 作者:Vigs

这个documentation 指定:

类型(字符串)(可选)控制返回值的格式。可能的值包括:

“普通”-链接由换行符分隔的字符串为了将推特引导分页样式添加到wordpress评论分页中,我希望返回是一个数组。

当我在通话中添加$args时,我得不到任何回报。

我的代码:

<ol class="commentlist" style="list-style: none;">
    <?php wp_list_comments(\'type=comment&callback=advanced_comment\'); ?>
</ol>
<div class="clear"></div>
<div class="pagination">
    <?php 
    $args = array(
    \'base\'         => \'%_%\',
    \'format\'       => \'?page=%#%\',
    \'total\'        => 1,
    \'current\'      => 0,
    \'show_all\'     => False,
    \'end_size\'     => 1,
    \'mid_size\'     => 2,
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'« Previous\'),
    \'next_text\'    => __(\'Next »\'),
    \'type\'         => \'array\',
    \'add_args\'     => False,
    \'add_fragment\' => \'\'
    ); 
    paginate_comments_links($args); 
    ?> 
</div>
这是因为我正在使用自定义回调wp_list_comments?

我的advanced_comment() 回调:

<?php
function delete_comment_link($id)
{
    if (current_user_can(\'edit_post\'))
    {
    echo \'<a href="\'.admin_url("comment.php?action=cdc&c=$id").\'" class="btn btn-default">del</a> \';
    echo \'<a href="\'.admin_url("comment.php?action=cdc&dt=spam&c=$id").\'" class="btn btn-default">spam</a>\';
    }
} 
function advanced_comment($comment, $args, $depth)
{
$GLOBALS[\'comment\'] = $comment; ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
    <div class="panel panel-default">
        <div class="panel-heading"><?php comment_author(); ?> says: <?php echo substr(get_comment_excerpt(), 0, 25) . "..."; ?></div>
        <div class="panel-body">
            <div class="col-md-1">
            <?php echo get_avatar($comment,$size=\'75\',$default=\'<path_to_url>\' ); ?>
            </div>
            <?php if ($comment->comment_approved == \'0\') : ?>
            <em><?php _e(\'Your comment is awaiting moderation.\') ?></em>
            <br />
            <?php endif; ?>

            <div class="comment-text col-md-10">
            <div class="comment-meta">
                <?php echo get_comment_author_link($comment->ID); ?>
            </div>
            <small>
                <?php printf(__(\'%1$s at %2$s\'), get_comment_date(),  get_comment_time()) ?><?php edit_comment_link(__(\'(Edit)\'),\'  \',\'\') ?>
            </small>             
                <?php comment_text() ?>
            </div>

            <div class="btn-group float-right">
            <?php echo get_comment_reply_link(array_merge( $args, array(\'depth\' => $depth, \'max_depth\' => $args[\'max_depth\'], \'before\' => "<span class=\'btn btn-default\'>", \'after\' => \'</span>\'))) ?>
            <?php delete_comment_link(get_comment_ID()); ?>
            </div>
            <div class="clear"></div>
        </div>
    </div>
</li>   
<?php 
}
请注意:paginate_comments_links() 如果我不通过,效果很好$args.

解决方案:

<ul class="pagination">
    <?php 
        $pages = paginate_comments_links( array( \'echo\' => false, \'type\' => \'array\' ) );
        foreach($pages as $page)
        {
        echo "<li>" . $page . "</li>";
        }
    ?>
</ul>

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

首先要说的是,你不能说你没有被警告过——参见codex页面paginate_comments_links(), 第»节默认值«:

这些论点主要是为了paginate_links() 工作,所以be careful if you change them.

这是真的,paginate_comments_links() 几乎只是一个已经定制的评论版本paginate_links(), 使用这些默认值可以实现此功能:

添加查询参数(\'cpage\',\'%\\%\'),\'format\',\'total\'=>$max\\u页面,\'current\'=>$页面,\'echo\'=>true,\'add\\u fragment\'=>\'注释\'paginate_comment_links() 默认值为paginate_links(), 这导致评论链接不再工作。如果我看得没错,您要更改的唯一参数是type, 所以这是你唯一要通过的考试。

像这样:

$args = array( 
    \'type\' => \'list\' 
);
paginate_comments_links( $args );
或:

paginate_comments_links( array( \'type\' => \'list\' ) );

相关推荐

警告:CALL_USER_FUNC_ARRAY()要求参数1是有效的回调

我创建了一个新的wordpress,没有主题,只有一个插件:GDPR WP。(我想先在空wordpress上试用这个插件,然后再将它部署到其他网站上)。所以,我第一次尝试创建函数来接受或不接受GoogleAnalytics cookie。我的函数工作正常,但在BO/FO上有一个错误:Warning: call_user_func_array() expects parameter 1 to be a valid callback, function \'cookie_GA\' not found or i