您可以添加额外的(链接/URL标签)字段,如下所示:
中的wpse_source_meta_box()
函数中,添加额外字段的(HTML):
echo \'<input type="text" id="source-link-label"" name="source_link_label" value="\'.
get_post_meta( $post->ID, \'_source_link_label\', true ) .\'" size="25" />\';
如您所见,字段名为
_source_link_label
在中使用
get_post_meta()
检索字段值时调用。
但是,由于现在有两个字段,您可能需要添加placeholder
到input
字段:
echo \'<input type="text" id="source-link"" name="source_link" value="\'.
get_post_meta( $post->ID, \'_source_link\', true ) .\'" size="25" placeholder="URL" />\';
echo \'<input type="text" id="source-link-label"" name="source_link_label" value="\'.
get_post_meta( $post->ID, \'_source_link_label\', true ) .\'" size="25" placeholder="Label" />\';
或添加
<label>
字段前:
echo \'<label for="source-link">URL:</label> \';
echo \'<input type="text" id="source-link"" name="source_link" value="\'.
get_post_meta( $post->ID, \'_source_link\', true ) .\'" size="25" />\';
echo \'<label for="source-link-label">Label:</label> \';
echo \'<input type="text" id="source-link-label"" name="source_link_label" value="\'.
get_post_meta( $post->ID, \'_source_link_label\', true ) .\'" size="25" />\';
中的
wpse_source_link_save()
函数,保存/更新字段值,如下所示:
update_post_meta( $post_id, \'_source_link_label\', $_POST[\'source_link_label\'] );
然后将字段值(或链接标签)与链接URL一起使用,如下所示:
<?php
// Show if the source link was specified.
if ( $url = get_post_meta( $post->ID, \'_source_link\', true ) ) :
$label = get_post_meta( $post->ID, \'_source_link_label\', true );
$label = $label ? $label : $url;
?>
<div class="source-link">
Source: <a href="<?php echo esc_url( $url ); ?>"><?php // wrapped (for clarity)
echo esc_html( $label ); ?></a>
</div>
<?php endif; // end $url ?>
(部分代码取自
here.)
因此,没有步骤3部分的完整代码如下所示this. :)
这应该有用,但我建议你使用sanitize_text_field()
更新字段时:
update_post_meta( $post_id, \'_source_link\', sanitize_text_field( $_POST[\'source_link\'] ) );
update_post_meta( $post_id, \'_source_link_label\', sanitize_text_field( $_POST[\'source_link_label\'] ) );
请参见
this article 了解更多详细信息。
更新
您可以使用此代码代替我在上面步骤3中给出的代码,以确保源链接仅显示在多页内容的最后一页上(使用
<!--nextpage-->
) &mdash;如果内容未设置为多页,则链接(如果设置)将始终显示在第一页上:
<?php
global $post, $pages, $page;
$total = count( $pages );
// Show if there\'s only one page, or that we\'re on the last page.
if ( $total < 2 || $page === $total ) :
// Show if the source link was specified.
if ( $url = get_post_meta( $post->ID, \'_source_link\', true ) ) :
$label = get_post_meta( $post->ID, \'_source_link_label\', true );
$label = $label ? $label : $url;
?>
<div class="source-link">
Source: <a href="<?php echo esc_url( $url ); ?>"><?php
echo esc_html( $label ); ?></a>
</div>
<?php endif; // end $url
endif; // end last page check
?>