ap_post_actions( mixed $_post = null )
Description #
Return post actions array.
Parameters #
- $_postmixed (Optional) Post. Default value: null
Source #
File: includes/theme.php
function ap_post_actions( $_post = null ) {
$_post = ap_get_post( $_post );
$actions = array();
if ( ! in_array( $_post->post_type, array( 'question', 'answer' ), true ) ) {
return $actions;
}
// Featured link.
if ( 'question' === $_post->post_type ) {
$actions[] = ap_featured_post_args( $_post->ID );
}
// Question close action.
if ( ap_user_can_close_question() && 'question' === $_post->post_type ) {
$nonce = wp_create_nonce( 'close_' . $_post->ID );
$close_label = $_post->closed ? __( 'Open', 'anspress-question-answer' ) : __( 'Close', 'anspress-question-answer' );
$close_title = $_post->closed ? __( 'Open this question for new answers', 'anspress-question-answer' ) : __( 'Close this question for new answer.', 'anspress-question-answer' );
$actions[] = array(
'cb' => 'close',
'icon' => 'apicon-check',
'query' => array(
'nonce' => $nonce,
'post_id' => $_post->ID,
),
'label' => $close_label,
'title' => $close_title,
);
}
// Edit link.
if ( ap_user_can_edit_post( $_post->ID ) ) {
$actions[] = array(
'cb' => 'edit',
'label' => __( 'Edit', 'anspress-question-answer' ),
'href' => ap_post_edit_link( $_post ),
);
}
// Flag link.
$actions[] = ap_flag_btn_args( $_post );
$status_args = ap_post_status_btn_args( $_post );
if ( ! empty( $status_args ) ) {
$actions[] = array(
'label' => __( 'Status', 'anspress-question-answer' ),
'header' => true,
);
$actions = array_merge( $actions, $status_args );
$actions[] = array( 'header' => true );
}
$answers = ap_count_published_answers( $_post->ID );
if ( ap_user_can_delete_post( $_post->ID ) && ( ! ap_opt( 'trashing_question_with_answer' ) || empty( $answers ) ) ) {
if ( 'trash' === $_post->post_status ) {
$label = __( 'Undelete', 'anspress-question-answer' );
$title = sprintf(
/* Translators: %s Question or Answer post type label for restoring a question or answer. */
__( 'Restore this %s', 'anspress-question-answer' ),
( 'question' === $_post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' )
);
} else {
$label = __( 'Delete', 'anspress-question-answer' );
$title = sprintf(
/* Translators: %s Question or Answer post type label for deleting a question or answer. */
__( 'Delete this %s (can be restored again)', 'anspress-question-answer' ),
( 'question' === $_post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' )
);
}
$actions[] = array(
'cb' => 'toggle_delete_post',
'query' => array(
'post_id' => $_post->ID,
'__nonce' => wp_create_nonce( 'trash_post_' . $_post->ID ),
),
'label' => $label,
'title' => $title,
);
}
// Permanent delete link.
if ( ap_user_can_permanent_delete( $_post->ID ) && ( ! ap_opt( 'deleting_question_with_answer' ) || empty( $answers ) ) ) {
$actions[] = array(
'cb' => 'delete_permanently',
'query' => array(
'post_id' => $_post->ID,
'__nonce' => wp_create_nonce( 'delete_post_' . $_post->ID ),
),
'label' => __( 'Delete Permanently', 'anspress-question-answer' ),
'title' => sprintf(
/* Translators: %s Question or Answer post type label for permanently deleting a question or answer. */
__( 'Delete %s permanently (cannot be restored again)', 'anspress-question-answer' ),
( 'question' === $_post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' )
),
);
}
// Convert question to a post.
if ( ( is_super_admin() || current_user_can( 'manage_options' ) ) && 'question' === $_post->post_type ) {
$actions[] = array(
'cb' => 'convert_to_post',
'query' => array(
'post_id' => $_post->ID,
'__nonce' => wp_create_nonce( 'convert-post-' . $_post->ID ),
),
'label' => __( 'Convert to post', 'anspress-question-answer' ),
'title' => __( 'Convert this question to blog post', 'anspress-question-answer' ),
);
}
/**
* For filtering post actions buttons
*
* @var array
* @since 2.0
*/
$actions = apply_filters( 'ap_post_actions', array_filter( $actions ) );
return array_values( $actions );
}
Expand full source code Collapse full source code View on GitHub: includes/theme.php:238
Add your comment