在不使用Ajax(如快速编辑)的情况下admin_url
应该是edit.php
页
请注意:
过滤器post_row_actions
接受两个参数,第二个是$post
, 因此,全球是没有必要的代替使用id
在本例中,作为查询参数,最好使用自定义名称update_id
. 我不知道它的功能get_admin_url
并正常使用admin_url
为了这个
add_filter( \'post_row_actions\', function ( $actions, $post )
{
if ( get_post_status( $post ) != \'publish\' )
{
$nonce = wp_create_nonce( \'quick-publish-action\' );
$link = admin_url( "edit.php?update_id={$post->ID}&_wpnonce=$nonce" );
$actions[\'publish\'] = "<a href=\'$link\'>Publish</a>";
}
return $actions;
},
10, 2 );
然后,我们需要尽早采取行动,
load-edit.php
, 并执行
wp_update_post
如果nonce和
update_id
是否正常:
add_action( \'load-edit.php\', function()
{
$nonce = isset( $_REQUEST[\'_wpnonce\'] ) ? $_REQUEST[\'_wpnonce\'] : null;
if ( wp_verify_nonce( $nonce, \'quick-publish-action\' ) && isset( $_REQUEST[\'update_id\'] ) )
{
$my_post = array();
$my_post[\'ID\'] = $_REQUEST[\'update_id\'];
$my_post[\'post_status\'] = \'publish\';
wp_update_post( $my_post );
}
});