Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用函数向WordPress帖子添加换行符_Php_Wordpress - Fatal编程技术网

Php 使用函数向WordPress帖子添加换行符

Php 使用函数向WordPress帖子添加换行符,php,wordpress,Php,Wordpress,我正试图在我的WordPress帖子标题中添加换行符 我只希望当single.php页面在标题中找到这个符号“|”(不带引号)时,换行符出现在single.php页面上 其他人喜欢这里,所以说可以在我的模板中使用以下内容: <?php echo str_replace(' | ', '<br />', get_the_title()); ?> 但是在我的例子中,我不能直接编辑single.php页面,所以我需要通过functions.php文件中的一些代码添加这个功

我正试图在我的WordPress帖子标题中添加换行符

我只希望当single.php页面在标题中找到这个符号“|”(不带引号)时,换行符出现在single.php页面上

其他人喜欢这里,所以说可以在我的模板中使用以下内容:

<?php echo str_replace(' | ', '<br />', get_the_title()); ?>

但是在我的例子中,我不能直接编辑single.php页面,所以我需要通过functions.php文件中的一些代码添加这个功能

你知道我应该用什么代码吗

我尝试了下面的代码,但我是新手,只是从我在网上找到的东西中把它拼凑起来,不用说它不起作用

function line_break_for_posts_filter($title){
  str_replace(' | ', '<br />', get_the_title());
  }
add_filter('the_title', 'line_break_for_posts_filter');
功能行\u断开\u用于\u帖子\u过滤器($title){
str_replace(“|”),“
”,获取标题(); } 添加筛选(“筛选标题”、“筛选帖子的行筛选”);
您忘记在您的
行中返回筛选结果\u break\u for\u posts\u filter
函数。试试这个:

function line_break_for_posts_filter($title){
    if ( is_singular() ) {
        return str_replace(' | ', '<br />', $title);
    } else {
        return str_replace(' | ', '', $title);
    }
}
add_filter('the_title', 'line_break_for_posts_filter');
功能行\u断开\u用于\u帖子\u过滤器($title){
if(单数形式){
返回str_replace(“|”),“
,$title); }否则{ 返回str|u replace(“|”和“$title”); } } 添加筛选(“筛选标题”、“筛选帖子的行筛选”);
我认为您使用了正确的代码。请尝试使用define('WP_DEBUG',true)查看错误;在wp-config.php或从这里检查,@SunilDora我无法调试它,因为代码完全破坏了我的站点。它表示“服务不可用。由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。”。我尝试添加
return str_replace
,但它仍然存在使服务器崩溃的问题。仍然存在同样的问题,它使服务器崩溃。很抱歉,我的回答中有一个错误,str_replace()中的第三个参数应该是变量$title,而不是函数get_the_title()。过滤器已经为我们提供了$title。这很有效!但现在我有一个问题,它到处运行,而我只希望它在single.php页面上运行。在其他页面上,只需删除|符号即可。我试着用IF语句包装你的函数,检查
是否为单数()
,但它不起作用,因为显示文章列表的“blog”页面没有标题。看到这里的代码:很高兴它为您工作。我已经更新了答案,因此它会在运行str_replace()之前检查页面模板。我还使用str|u replace从标题中删除了更多的“|”符号。谢谢,但它仍然不会在我的博客页面上显示标题,该页面列出了所有最近的帖子。标题不见了。另外,我认为我的另一个代码(这里是:jsfiddle.net/ee1ycdf5)使用
is_singular()
而不是
is_page_模板('single.php')
,因为它适用于所有单一的帖子类型