在Twentyree主题中,使用content-link.php
文件显示链接的部分是:
<h1 class="entry-title">
<a href="<?php echo esc_url(twentythirteen_get_link_url());?>"><?php the_title(); ?></a>
</h1>
因此,使用
twentythirteen_get_link_url()
; 此函数使用wp函数
get_url_in_content()
要获取内容中的第一个链接并显示它(如果有),如果没有,则显示post permalink。
不太可能,这些函数没有对结果进行筛选,因此要更改此行为,您有两个选项:
编辑主题文件创建子主题建议的解决方案是第二种。在里面wp-content/themes
文件夹创建名为twentythirteen-child
里面放了两个文件。第一个是style.css
可以只包含所需内容:
/*
Theme Name: Twenty Thirteen Child
Author: You
Template: twentythirteen
*/
@import url(\'../twentythirteen/style.css\');
现在转到您的仪表板,找到这个新创建的子主题并激活它。访问该站点时,您不会看到任何更改。
现在复制content-link.php
文件从Twentythine主题文件夹保存到您的子主题文件夹。找到我在上面发布的代码(应该是第13-15行)。
替换为:
<h1 class="entry-title">
<?php $link = get_post_meta( get_the_ID(), \'_my_custom_link\', true); ?>
<a href="<?php echo $link ? esc_url($link) ? esc_url(twentythirteen_get_link_url()); ?>">
<?php the_title(); ?>
</a>
</h1>
保存它。
现在可以添加隐藏的自定义字段\'_my_custom_link\'
并将其用作帖子的url。
作为隐藏字段(键以开头\'_\'
) 通常情况下,您已经为其添加了一个元框,但一旦您希望在编辑后屏幕中的标题后显示,就可以使用\'edit_form_after_title\'
用于显示字段的操作挂钩和用于保存字段的“save\\u post”挂钩。
在显示字段时,请确保帖子类型为“post”,并且帖子格式为空(新帖子或无帖子格式)或等于“link”。
因此,添加functions.php
文件,并在此文件中添加:
add_action(\'edit_form_after_title\', \'my_url_form_field\');
add_action(\'save_post\', \'my_url_form_field_save\');
function my_url_form_field( $post ) {
if ( $post->post_type != \'post\') return;
$format = get_post_format($post->ID);
if ( ! empty($format) && ($format != \'link\') ) return;
?>
<div id="urlwrap">
<p>
<label for="post-link-url"><strong>URL:</strong></label>
<input type="text" class="large-text" name="_my_custom_url" size="30" value="<?php echo get_post_meta($post->ID, \'_my_custom_url\', true); ?>" id="post-link-url" autocomplete="off" />
</p>
</div>
<?php
}
function my_url_form_field_save( $postid ) {
if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE );
if ( isset($_POST[\'_my_custom_url\']) ) {
if (( strpos($_POST[\'_my_custom_url\'], \'http://\') !== 0 ) && (strpos($_POST[\'_my_custom_url\'], \'https://\') !== 0 ))
$_POST[\'_my_custom_url\'] = \'http://\' . $_POST[\'_my_custom_url\'];
$url = filter_var($_POST[\'_my_custom_url\'], FILTER_VALIDATE_URL) ? $_POST[\'_my_custom_url\'] : \'\';
update_post_meta($postid, \'_my_custom_url\', $url);
}
}
预览或您将获得的内容:
现在,您可以自定义content-link.php
在您的孩子主题中,根据您的需要。
当Twentyree获得更新时,您可以毫不担心地进行更新:您的更改在子主题中是安全的。