网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

在Wordpress中创建新标记时显示错误

GG网络技术分享 2025-03-18 16:12 5


问题描述:

I need to display an error when a user tries to create a new tag via a new WordPress Post.

Ex: A user with the classification of \'editor\' goes to create a new post in WordPress and adds a tag that does not exist in the taxonomy I would like to disaplay an admin error at the top of the page upon hitting Publish or Update.

This is my code that shows the error

function my_error_notice() {

if ( !current_user_can( \'editor\' ) ) {

?>

<div class=\"error notice\">

<p><?php _e( \'Sorry only the Administrators are allowed to create new tags, please select from the prepopulated suggestions or contact an Administrator for more assistence.\', \'my_plugin_textdomain\' ); ?></p>

</div>

<?php

}

add_action( \'admin_notices\', \'my_error_notice\' );

this is the code that detects the new tag

add_action(\'create_term\',\'undo_create_term\',10, 3);

function undo_create_term ($term_id, $tt_id, $taxonomy) {

if ( !current_user_can( \'editor\' ) ) {

if($taxonomy == \'post_tag\') {

wp_delete_term($term_id,$taxonomy);

}

}

}

网友观点:

You\'ll have to set a transient variable or similar strategy, because WP does a redirect after saving the post.

Here is the basic idea. It\'s up to you to fine-tune it to work in your application:

function my_error_notice() {

$show_notice = get_transient(\'show_post_tag_notice\');

if ( ! $show_notice ) {

return;

}

delete_transient(\'show_post_tag_notice\');

if ( !current_user_can( \'editor\' ) ) { ?>

<div class=\\\"error notice\\\">

<p><?php _e( \'Sorry only the Administrators are allowed to create new tags, please select from the prepopulated suggestions or contact an Administrator for more assistence.\', \'my_plugin_textdomain\' ); ?></p>

</div>

<?php

}

}

add_action( \'admin_notices\', \'my_error_notice\' );

add_action(\'create_term\',\'undo_create_term\',10, 3);

function undo_create_term ($term_id, $tt_id, $taxonomy) {

if ( !current_user_can( \'editor\' ) ) {

if($taxonomy == \'post_tag\') {

wp_delete_term($term_id,$taxonomy);

set_transient(\'show_post_tag_notice\', true);

}

}

}

标签:

提交需求或反馈

Demand feedback