在 wordpress 上显示具有特定样式的元数据
Display metadata with specific style on wordpress
我会尽力解释这一点。我在小组中放弃了我的另一个想法,因为我无法展示它。我是 php 的新手,非常感谢您的帮助。
到目前为止,我在 functions.php
中有这个
function gallery_links_get_meta( $value ) {
global $post;
$field = get_post_meta( $post->ID, $value, true );
if ( ! empty( $field ) ) {
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
return false;
}
}
function gallery_links_add_meta_box() {
add_meta_box(
'gallery_links-gallery-links',
__( 'Gallery Links', 'gallery_links' ),
'gallery_links_html',
'post',
'side',
'core'
);
}
add_action( 'add_meta_boxes', 'gallery_links_add_meta_box' );
function gallery_links_html( $post) {
wp_nonce_field( '_gallery_links_nonce', 'gallery_links_nonce' ); ?>
<p>List gallery links as well as text.</p>
<p>
<label for="gallery_links_gallery_link_text"><?php _e( 'Gallery Link Text', 'gallery_links' ); ?></label><br>
<input type="text" name="gallery_links_gallery_link_text" id="gallery_links_gallery_link_text" value="<?php echo gallery_links_get_meta( 'gallery_links_gallery_link_text' ); ?>">
</p> <p>
<label for="gallery_links_gallery_link"><?php _e( 'Gallery Link', 'gallery_links' ); ?></label><br>
<input type="text" name="gallery_links_gallery_link" id="gallery_links_gallery_link" value="<?php echo gallery_links_get_meta( 'gallery_links_gallery_link' ); ?>">
</p><?php
}
function gallery_links_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['gallery_links_nonce'] ) || ! wp_verify_nonce( $_POST['gallery_links_nonce'], '_gallery_links_nonce' ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
if ( isset( $_POST['gallery_links_gallery_link_text'] ) )
update_post_meta( $post_id, 'gallery_links_gallery_link_text', esc_attr( $_POST['gallery_links_gallery_link_text'] ) );
if ( isset( $_POST['gallery_links_gallery_link'] ) )
update_post_meta( $post_id, 'gallery_links_gallery_link', esc_attr( $_POST['gallery_links_gallery_link'] ) );
}
add_action( 'save_post', 'gallery_links_save' );
/*
Usage: gallery_links_get_meta( 'gallery_links_gallery_link_text' )
Usage: gallery_links_get_meta( 'gallery_links_gallery_link' )
*/
我想在 post:
上显示这样的数据
如果 post 填写了元数据,我需要一个 <?php if
东西来只显示 css。
<div id="gallink">
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true); ?></a>
</div>
但我不希望 "gallink" 在未填写元数据的情况下显示。
此外,如果我想做多个链接,我希望它以相同的方式进行,但我想我可能需要另一个 <?php if
以防他们没有填写所有字段。像这样:
<div id="gallink">
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true); ?></a>
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link2', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text2', true); ?></a>
</div>
如果他们没有填写第二组元数据,我不希望它显示那个,而只显示第一个。
也许我需要在功能页面中添加一些其他东西来设置样式而不是在页面上做?
我希望这是有道理的。如果需要,我可以尝试更好地解释它,感谢您的帮助,谢谢!
使用 empty()
函数确定您正在检索的元元素中是否包含任何内容。
<?php
$gallery_link_1 = get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true);
$gallery_link_1_text = get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true);
$gallery_link_2 = get_post_meta(get_the_ID(), 'gallery_links_gallery_link2', true);
$gallery_link_2_text = get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text2', true);
if (!empty($gallery_link_1_text) || !empty($gallery_link_2_text)) {
?>
<div id="gallink">
<?php
if (!empty($gallery_link_1) && !empty($gallery_link_1_text)) {
?>
<a href="<?php echo $gallery_link_1; ?>"><?php echo $gallery_link_1_text; ?></a>
<?php
}
if (!empty($gallery_link_2) && !empty($gallery_link_2_text)) {
?>
<a href="<?php echo $gallery_link_2; ?>"><?php echo $gallery_link_2_text; ?></a>
<?php
}
?>
</div>
<?php
}
?>
我会尽力解释这一点。我在小组中放弃了我的另一个想法,因为我无法展示它。我是 php 的新手,非常感谢您的帮助。
到目前为止,我在 functions.php
中有这个function gallery_links_get_meta( $value ) {
global $post;
$field = get_post_meta( $post->ID, $value, true );
if ( ! empty( $field ) ) {
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
return false;
}
}
function gallery_links_add_meta_box() {
add_meta_box(
'gallery_links-gallery-links',
__( 'Gallery Links', 'gallery_links' ),
'gallery_links_html',
'post',
'side',
'core'
);
}
add_action( 'add_meta_boxes', 'gallery_links_add_meta_box' );
function gallery_links_html( $post) {
wp_nonce_field( '_gallery_links_nonce', 'gallery_links_nonce' ); ?>
<p>List gallery links as well as text.</p>
<p>
<label for="gallery_links_gallery_link_text"><?php _e( 'Gallery Link Text', 'gallery_links' ); ?></label><br>
<input type="text" name="gallery_links_gallery_link_text" id="gallery_links_gallery_link_text" value="<?php echo gallery_links_get_meta( 'gallery_links_gallery_link_text' ); ?>">
</p> <p>
<label for="gallery_links_gallery_link"><?php _e( 'Gallery Link', 'gallery_links' ); ?></label><br>
<input type="text" name="gallery_links_gallery_link" id="gallery_links_gallery_link" value="<?php echo gallery_links_get_meta( 'gallery_links_gallery_link' ); ?>">
</p><?php
}
function gallery_links_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['gallery_links_nonce'] ) || ! wp_verify_nonce( $_POST['gallery_links_nonce'], '_gallery_links_nonce' ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
if ( isset( $_POST['gallery_links_gallery_link_text'] ) )
update_post_meta( $post_id, 'gallery_links_gallery_link_text', esc_attr( $_POST['gallery_links_gallery_link_text'] ) );
if ( isset( $_POST['gallery_links_gallery_link'] ) )
update_post_meta( $post_id, 'gallery_links_gallery_link', esc_attr( $_POST['gallery_links_gallery_link'] ) );
}
add_action( 'save_post', 'gallery_links_save' );
/*
Usage: gallery_links_get_meta( 'gallery_links_gallery_link_text' )
Usage: gallery_links_get_meta( 'gallery_links_gallery_link' )
*/
我想在 post:
上显示这样的数据如果 post 填写了元数据,我需要一个 <?php if
东西来只显示 css。
<div id="gallink">
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true); ?></a>
</div>
但我不希望 "gallink" 在未填写元数据的情况下显示。
此外,如果我想做多个链接,我希望它以相同的方式进行,但我想我可能需要另一个 <?php if
以防他们没有填写所有字段。像这样:
<div id="gallink">
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true); ?></a>
<a href="<?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link2', true); ?>"><?php echo get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text2', true); ?></a>
</div>
如果他们没有填写第二组元数据,我不希望它显示那个,而只显示第一个。
也许我需要在功能页面中添加一些其他东西来设置样式而不是在页面上做?
我希望这是有道理的。如果需要,我可以尝试更好地解释它,感谢您的帮助,谢谢!
使用 empty()
函数确定您正在检索的元元素中是否包含任何内容。
<?php
$gallery_link_1 = get_post_meta(get_the_ID(), 'gallery_links_gallery_link', true);
$gallery_link_1_text = get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text', true);
$gallery_link_2 = get_post_meta(get_the_ID(), 'gallery_links_gallery_link2', true);
$gallery_link_2_text = get_post_meta(get_the_ID(), 'gallery_links_gallery_link_text2', true);
if (!empty($gallery_link_1_text) || !empty($gallery_link_2_text)) {
?>
<div id="gallink">
<?php
if (!empty($gallery_link_1) && !empty($gallery_link_1_text)) {
?>
<a href="<?php echo $gallery_link_1; ?>"><?php echo $gallery_link_1_text; ?></a>
<?php
}
if (!empty($gallery_link_2) && !empty($gallery_link_2_text)) {
?>
<a href="<?php echo $gallery_link_2; ?>"><?php echo $gallery_link_2_text; ?></a>
<?php
}
?>
</div>
<?php
}
?>