在 "post_submitbox_misc_actions" 框中为每个产品和优惠券等添加 "created by"
Add "created by" for every product and coupon etc, in "post_submitbox_misc_actions" box
我能够编写出运行良好的代码!我只是有一些疑问,如果这段代码质量好,或者我是否可以做得更好。
我们想在管理后台的每个产品编辑页面和优惠券等上显示“创建者”。为此,我写了下面的代码。基础来自How to add a field in edit post page inside Publish box in Wordpress? and
此代码完全有效!
但我不确定它是否是干净的代码并且想学习。
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by($post)
{
// Author ID
$author_id = get_post_field ( 'post_author', $post_id );
// Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><b>Created by: </b></label>' . $display_name .'</span></div>';
}
}
变量 $post_id
未定义,应替换为“$post->ID”。另外 <strong>
替换旧的 <b>
html 标签和“创建者:”标签应该是可翻译的。
所以在你的代码中:
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by( $post )
{
// Get Author ID
$author_id = get_post_field ( 'post_author', $post->ID );
// Get Author Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><strong>' . __("Created by:", "woocommerce").' </strong></label>' . $display_name .'</span>
</div>';
}
}
它应该更好用。
补充:要仅定位产品和优惠券,您还应该添加一些条件,例如:
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by( $post )
{
global $typenow;
if ( in_array( $typenow, array('product', 'shop_coupon') ) )
{
// Get Author ID
$author_id = get_post_field ( 'post_author', $post->ID );
// Get Author Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><strong>' . __("Created by:", "woocommerce").' </strong></label>' . $display_name .'</span>
</div>';
}
}
}
我能够编写出运行良好的代码!我只是有一些疑问,如果这段代码质量好,或者我是否可以做得更好。
我们想在管理后台的每个产品编辑页面和优惠券等上显示“创建者”。为此,我写了下面的代码。基础来自How to add a field in edit post page inside Publish box in Wordpress? and
此代码完全有效!
但我不确定它是否是干净的代码并且想学习。
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by($post)
{
// Author ID
$author_id = get_post_field ( 'post_author', $post_id );
// Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><b>Created by: </b></label>' . $display_name .'</span></div>';
}
}
变量 $post_id
未定义,应替换为“$post->ID”。另外 <strong>
替换旧的 <b>
html 标签和“创建者:”标签应该是可翻译的。
所以在你的代码中:
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by( $post )
{
// Get Author ID
$author_id = get_post_field ( 'post_author', $post->ID );
// Get Author Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><strong>' . __("Created by:", "woocommerce").' </strong></label>' . $display_name .'</span>
</div>';
}
}
它应该更好用。
补充:要仅定位产品和优惠券,您还应该添加一些条件,例如:
add_action( 'post_submitbox_misc_actions', 'created_by' );
function created_by( $post )
{
global $typenow;
if ( in_array( $typenow, array('product', 'shop_coupon') ) )
{
// Get Author ID
$author_id = get_post_field ( 'post_author', $post->ID );
// Get Author Display name
$display_name = get_the_author_meta( 'display_name' , $author_id );
if ( ! empty ( $display_name ) ) {
echo '<div class="misc-pub-section misc-pub-section-last">
<span id="timestamp"><label><strong>' . __("Created by:", "woocommerce").' </strong></label>' . $display_name .'</span>
</div>';
}
}
}