Replace text in the Title

时间:2015-04-29 作者:drabello

在显示的字符串中<?php the_title(); ?> 我必须全部更换& 具有的字符and.

以下是我尝试过但没有成功的代码:

<?php $wptitle = the_title(); $wptitle = str_replace(\'&\', \'and\', $wptitle);?><?php echo $wptitle; ?>
要替换的完整代码:

<h2><a href="<?php if(get_post_meta($post->ID, \'links_link_custom\', true)): ?><?php echo get_post_meta($post->ID, \'links_link_custom\', true) ?><?php else: ?><?php the_permalink(); ?><?php endif; ?>"><?php the_title(); ?></a></h2>

1 个回复
SO网友:Tom J Nowell

首先,让我们清理您的代码:

<?php $wptitle = the_title(); $wptitle = str_replace(\'&\', \'and\', $wptitle);?><?php echo $wptitle; ?>
让我们删除PHP标记垃圾邮件,并将内容放在整洁的行中:

<?php
$wptitle = the_title();
$wptitle = str_replace(\'&\', \'and\', $wptitle);
echo $wptitle;
?>
现在如果我们看看这个问题,the_title, 该函数输出标题,不返回任何内容。这意味着$wptitle 为空,因此字符串替换不会执行任何操作。

你需要告诉它归还它,否则它就不会知道,计算机和人不一样,需要明确地告诉他们在没有任何假设的情况下该做什么。

然而,一个快速的谷歌the_title brings up the codex as the first entry, 随着a related function get_the_title 这会解决你的问题。阅读文档说明此函数采用以下参数:

<?php the_title( $before, $after, $echo ); ?>
所以你可以改变$wptitle = the_title(); 对此:

$wptitle = the_title( \'\',\'\',false );
或者这个:

$wptitle = get_the_title();
还有一种更好的方法可以用于涉及过滤器:

add_filter( \'the_title\', \'drabello_swap_ampersands\' );
function drabello_swap_ampersands( $old_title ) {
    $new_title = // do the replacement..
    return $new_title;
}

结束

相关推荐

Query Taxonomy By Page Title

我想做的是在具有该分类名称的页面上显示共享该分类的帖子。例如,一个名为“PHP”的页面将显示自定义分类法“language”设置为“PHP”的所有帖子。到目前为止我所拥有的。。$secondary_loop = new WP_Query(array( \'tax_query\' => array( array( \'taxonomy\' => \'language\', \'term