我创建了一个额外的内容文件,并插入了一个类别(以及与该类别相关的)的自定义文本,以便在属于该类别的所有帖子中(随机)显示,一切正常这是我使用的代码:-
<?php
add_filter(\'the_content\', \'custom_category_text\');
function custom_category_text($content) {
global $post;
$office = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$office_random = array_rand($office, 2);
$office1 = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$office1_random = array_rand($office1, 2);
$custom_category_text = \'<p> \' . $office[$office_random[0]] . \' \' . $office1[$office1_random[0]] . \'</p>\';
// Category ID = 1
if (in_category(\'1\')) {
$content = $content . $custom_category_text;
}
return $content;
}
?>
在上面的代码中,我的类别是office,我用$office和$office1(用于自定义文本的两段)来标识自定义文本,以便我记住我在做什么。
我有两个类别,现在想插入与第二个类别相关的额外随机自定义文本,以便自定义文本的每个实例都显示在由其类别标识的所有帖子中这是下面的修订代码,但类别ID 2的自定义文本根本不显示。
<?php
add_filter(\'the_content\', \'custom_category_text\');
function custom_category_text($content) {
global $post;
$office = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$office_random = array_rand($office, 2);
$office1 = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$office1_random = array_rand($office1, 2);
$home = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$home_random = array_rand($home, 2);
$home1 = array( "Pellentesque arcu nisi, pellentesque nec gravida quis.", "Pellentesque arcu nisi." );
$home1_random = array_rand($home1, 2);
$custom_category_text = \'<p> \' . $office[$office_random[0]] . \' \' . $office1[$office1_random[0]] . \'</p>\';
// Category ID = 1
if (in_category(\'1\')) {
$content = $content . $custom_category_text;
}
return $content;
$custom_category_text = \'<p> \' . $home[$home_random[0]] . \' \' . $home1[$home1_random[0]] . \'</p>\';
// Category ID = 2
if (in_category(\'2\')) {
$content = $content . $custom_category_text;
}
return $content;
}
?>
这就是我的问题,我希望有人能帮我解决这个问题-第二类的自定义文本根本不显示。
多谢斯佩特
最合适的回答,由SO网友:Pieter Goosen 整理而成
这实际上看起来不像Wordpress的问题,但遗憾的是缺乏PHP技能。您的问题在于这段代码
$custom_category_text = \'<p> \' . $office[$office_random[0]] . \' \' . $office1[$office1_random[0]] . \'</p>\';
// Category ID = 1
if (in_category(\'1\')) {
$content = $content . $custom_category_text;
}
return $content;
$custom_category_text = \'<p> \' . $home[$home_random[0]] . \' \' . $home1[$home1_random[0]] . \'</p>\';
// Category ID = 2
if (in_category(\'2\')) {
$content = $content . $custom_category_text;
}
return $content;
类别2的代码永远不会工作,因为您已经返回了变量,并且正在为的两个实例设置两个不同的值
$custom_category_text
也您可以通过正确使用
if
else
陈述你可以试试这样的
if (in_category(\'1\')) { // Category ID = 1
$custom_category_text = \'<p> \' . $office[$office_random[0]] . \' \' . $office1[$office1_random[0]] . \'</p>\';
$content = $content . $custom_category_text;
}elseif(in_category(\'2\')) { // Category ID = 2
$custom_category_text = \'<p> \' . $home[$home_random[0]] . \' \' . $home1[$home1_random[0]] . \'</p>\';
$content = $content . $custom_category_text;
}
return $content;
只需将我答案顶部的原始代码替换为