我正在建立一个足球新闻网站,在我的主页上有一个最新文章的列表。只有标题和日期,没有特色图片等。非常干净和简单。但我想添加一个它位于其前面的类别的图像。
例如,如果是英国足球比赛的新闻,标题前会有一面英国国旗。在我的WordPress文章中,它将发布在英语类别中。如果是荷兰比赛,将有荷兰国旗等。
我有一个用photoshop制作的例子。前5篇文章是我真正想要的,最后一篇是他们目前的状态。(这是演示文本,所以不要把重点放在文本上):
Class Block_28_View extends BlockViewAbstract
{
public function set_content_setting_option()
{
$this->options[\'show_date\'] = \'\';
$this->options[\'date_format\'] = \'default\';
$this->options[\'date_format_custom\'] = \'Y/m/d\';
$this->options[\'excerpt_length\'] = 20;
}
public function render_block($post, $attr)
{
$date = $attr[\'show_date\'] ? $this->post_meta_2($post) : "";
$output =
"<article " . jnews_post_class("jeg_post jeg_pl_xs_4", $post->ID) . ">
<div class=\\"jeg_postblock_content\\"><img src="\\
<h3 class=\\"jeg_post_title\\">
<a href=\\"" . get_the_permalink($post) . "\\">" . get_the_title($post) . "</a>
</h3>
" . $date . "
</div>
</article>";
return $output;
}
public function build_column($results, $attr)
{
$first_block = \'\';
$ads_position = $this->random_ads_position(sizeof($results));
for ( $i = 0; $i < sizeof($results); $i++ )
{
if ( $i == $ads_position )
{
$first_block .= $this->render_module_ads(\'jeg_ajax_loaded anim_\' . $i);
}
$first_block .= $this->render_block($results[$i], $attr);
}
$show_border = $attr[\'show_border\'] ? \'show_border\' : \'\';
$output =
"<div class=\\"jeg_posts {$show_border}\\">
<div class=\\"jeg_postsmall jeg_load_more_flag\\">
{$first_block}
</div>
</div>";
return $output;
}
public function build_column_alt($results, $attr)
{
$first_block = \'\';
$ads_position = $this->random_ads_position(sizeof($results));
for ( $i = 0; $i < sizeof($results); $i++ )
{
if ( $i == $ads_position )
{
$first_block .= $this->render_module_ads(\'jeg_ajax_loaded anim_\' . $i);
}
$first_block .= $this->render_block($results[$i], $attr);
}
$output = $first_block;
return $output;
}
public function render_output($attr, $column_class)
{
$results = $this->build_query($attr);
$navigation = $this->render_navigation($attr, $results[\'next\'], $results[\'prev\'], $results[\'total_page\']);
if(!empty($results[\'result\'])) {
$content = $this->render_column($results[\'result\'], $attr);
} else {
$content = $this->empty_content();
}
return
"<div class=\\"jeg_block_container\\">
{$this->get_content_before($attr)}
{$content}
{$this->get_content_after($attr)}
</div>
<div class=\\"jeg_block_navigation\\">
{$this->get_navigation_before($attr)}
{$navigation}
{$this->get_navigation_after($attr)}
</div>";
}
public function render_column($result, $attr)
{
$content = $this->build_column($result, $attr);
return $content;
}
public function render_column_alt($result, $attr)
{
$content = $this->build_column_alt($result, $attr);
return $content;
}
}
SO网友:cjbj
使用filter on the title, 您可以将其添加到functions.php
. 像这样:
add_filter (\'the_title\', \'wpse305812_add_flag\', 10, 2);
function wpse305812_add_flag ($title, $id) {
if (in_category (\'england\', $id)) $flag = "http://www.example.com/.../england.jpg"
elseif (in_category (\'brasil\', $id)) $flag = "http://www.example.com/.../brasil.jpg"
...;
return \'<img src="\' . $flag . \'"> \' . $title;
}
请注意,此(相当不合法)代码不会考虑将两个标志分配给一个标题的可能性。