【问题标题】:How to get (or generate) link to untrash a post?如何获取(或生成)链接以取消垃圾邮件?
【发布时间】:2017-04-24 16:09:11
【问题描述】:

我在 Wordpress 上有一个自定义管理页面,允许以某种需要的方式显示帖子。

每个帖子都表示为一张卡片,其中包含一个垃圾箱图标,用于将帖子发送到垃圾箱。这很容易:

<?php $trash_link = get_delete_post_link( $id ); ?>
<a href="<?= $trash_link ?>"><span class="dashicons dashicons-trash"></span></a>

当我目前正在查看已删除的帖子时,我想将此图标/链接替换为恢复图标/链接,但我无法弄清楚如何获取该链接,因为它似乎不存在 get_undelete_post_link() 或 @ 987654325@.

垃圾链接如下所示:
http://example.com/wp-admin/post.php?post=8459&action=trash&_wpnonce=937a7ccb5d

虽然取消垃圾链接看起来像:
http://example.com/wp-admin/post.php?post=8459&action=untrash&_wpnonce=53facd85e3

所以我尝试了:

<?php
$trash_link = get_delete_post_link( $id );
if ( $post->post_status == 'trash' ):
    $restore_link = str_replace( 'trash', 'untrash', $trash_link );
endif;

这给出了一个明显正确的链接,但当然,它不起作用,因为 nonce 不验证。

我想我可以使用wp_create_nonce()wp_untrash_post() 构建自己的系统,但有没有更简单的方法?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    我找到了一种简单的方法来查看如何在 Wordpress 的核心中完成此操作。

    他们使用wp_nonce_url()

    检索带有随机数添加到 URL 查询的 URL。返回的结果被转义显示。

    所以,

    <?php
    $post_id = $post->ID;
    $restore_link = wp_nonce_url(
        "post.php?action=untrash&amp;post=$post_id",
        "untrash-post_$post_id"
    );
    

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 2011-03-24
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多