Latest News im Newsup Theme
-
Hallo Zusammen
Ich nutze die Free Version vom NewsUp Theme. Dort wird auf der Frontpage unter dem Menü direkt ein kleiner Slide „Latest News“ angezeigt.
Soweit so gut. Eigentlich möchte ich nun, dass dies auch auf den einzelnen Beitragsseiten angezeigt wird. Bin im Code nirgends fündig geworden.
Ein Kollege von mir nutzt die Pro Version, dort ist es nicht einstellbar, somit muss man es im Code direkt lösen.
Hat eventuell jemand eine Idee?
lg aus Glarus
-
Hat eventuell jemand eine Idee?
Ich glaube, das solltest du in dem Fall den Hersteller fragen.
Die Marquee (Laufband) wird auf der Start- und Beitragsübersichtsseite angezeigt. Dafür wird in der Datei
inc/ansar/hooks/hooks.php
der Hooknewsup_action_banner_exclusive_posts
verwendet.Eigentlich reicht es, das if-Statement
if (is_front_page() || is_home()) { … }
zu erweitern in
if (is_front_page() || is_home() || is_single()) { … }
damit die Marquee auch bei der Ansicht einzelner Beiträge angezeigt wird. Das Problem ist aber, dass eine Änderung direkt im Theme beim nächsten Update wieder überschrieben wird. Das wäre ja blöd.
Besser ist deshalb, die Funktion (mit einem leicht abgewandelten Namen – Funktionsnamen dürfen immer nur einmal verwendet werden) neu einzubinden. Dazu entkoppeln wir mit
remove_action('newsup_action_banner_exclusive_posts', 'newsup_banner_exclusive_posts', 10);
zunächst die vom Theme verwendete Funktion. Solltest du den Code nicht in der
functions.php
eines Child-Themes, sondern in einem eigenen Plugin oder als Code Snippet verwenden, musst du außerdem festlegen, dass diese Entkoppelung erst erfolgt, wenn das Theme geladen wurde. (Sonst versuchst du eine Funktion zu entkoppeln, bevor sie vom Theme überhaupt eingebunden wurde.) Wir ergänzen in dem Fall den Code:add_action( 'after_setup_theme', 'my_remove_banner' );
function my_remove_banner() {
remove_action('newsup_action_banner_exclusive_posts', 'newsup_banner_exclusive_posts', 10);
}Nun fügen wir die Funktion mit einem leicht abgewandelten Namen und dem erweiterten if-Statement hinzu und koppeln sie mit
add_action()
an den Hook des Themes:function my_newsup_banner_exclusive_posts() {
if (is_front_page() || is_home() || is_single()) {
$show_flash_news_section = newsup_get_option('show_flash_news_section');
if ($show_flash_news_section):
?>
<section class="mg-latest-news-sec">
<?php
$category = newsup_get_option('select_flash_news_category');
$number_of_posts = newsup_get_option('number_of_flash_news');
$newsup_ticker_news_title = newsup_get_option('flash_news_title');
$all_posts = newsup_get_posts($number_of_posts, $category);
$show_trending = true;
$count = 1;
?>
<div class="container-fluid">
<div class="mg-latest-news">
<div class="bn_title">
<h2 class="title">
<?php if (!empty($newsup_ticker_news_title)): ?>
<?php echo esc_html($newsup_ticker_news_title); ?><span></span>
<?php endif; ?>
</h2>
</div>
<?php if(is_rtl()){ ?>
<div class="mg-latest-news-slider marquee" data-direction='right' dir="ltr">
<?php } else { ?>
<div class="mg-latest-news-slider marquee">
<?php }
if ($all_posts->have_posts()) :
while ($all_posts->have_posts()) : $all_posts->the_post(); ?>
<a href="<?php the_permalink(); ?>">
<span><?php the_title(); ?></span>
</a>
<?php
$count++;
endwhile;
endif;
wp_reset_postdata();
?>
</div>
</div>
</div>
</section>
<!-- Excluive line END -->
<?php endif;
}
}
add_action('newsup_action_banner_exclusive_posts', 'my_newsup_banner_exclusive_posts', 10);Für alle, die nicht so gerne programmieren, lieber kostenlose Hilfe im Forum holen, aber davon nichts verstehen, hier nochmal der komplette Code, der als Snippet verwendet werden kann:
add_action( 'after_setup_theme', 'my_remove_banner' );
function my_remove_banner() {
remove_action('newsup_action_banner_exclusive_posts', 'newsup_banner_exclusive_posts', 10);
}
function my_newsup_banner_exclusive_posts() {
if (is_front_page() || is_home() || is_single()) {
$show_flash_news_section = newsup_get_option('show_flash_news_section');
if ($show_flash_news_section):
?>
<section class="mg-latest-news-sec">
<?php
$category = newsup_get_option('select_flash_news_category');
$number_of_posts = newsup_get_option('number_of_flash_news');
$newsup_ticker_news_title = newsup_get_option('flash_news_title');
$all_posts = newsup_get_posts($number_of_posts, $category);
$show_trending = true;
$count = 1;
?>
<div class="container-fluid">
<div class="mg-latest-news">
<div class="bn_title">
<h2 class="title">
<?php if (!empty($newsup_ticker_news_title)): ?>
<?php echo esc_html($newsup_ticker_news_title); ?><span></span>
<?php endif; ?>
</h2>
</div>
<?php if(is_rtl()){ ?>
<div class="mg-latest-news-slider marquee" data-direction='right' dir="ltr">
<?php } else { ?>
<div class="mg-latest-news-slider marquee">
<?php }
if ($all_posts->have_posts()) :
while ($all_posts->have_posts()) : $all_posts->the_post(); ?>
<a href="<?php the_permalink(); ?>">
<span><?php the_title(); ?></span>
</a>
<?php
$count++;
endwhile;
endif;
wp_reset_postdata();
?>
</div>
</div>
</div>
</section>
<!-- Excluive line END -->
<?php endif;
}
}
add_action('newsup_action_banner_exclusive_posts', 'my_newsup_banner_exclusive_posts', 10);Viel Erfolg mit der Website.
Vielen Dank 😊 Dann war ich gar nicht so verkehrt mit der Hook-Datei. Ich verstehe zwar einiges was PHP, HTML und Co anbelangt, aber bei WordPress Blicke ich noch immer nicht ganz durch.
Mit dem Überschreiben ist es kein Problem, ich sichere mir die angepassten Files lokal auf dem Rechner.
Liebe Grüsse aus der Schweiz
Mit dem Überschreiben ist es kein Problem, ich sichere mir die angepassten Files lokal auf dem Rechner.
Genau das war eigentlich nicht der Sinn der ausführlichen Beschreibung.
Aber … deine Website, deine Regeln. Viel Erfolg mit der Website.
- Du musst angemeldet sein, um auf dieses Thema zu antworten.