無作為
不僅僅是一種態度!

DUX主題添加/修復首頁列表不顯示置頂文章功能

給wordpress主題添加一個文章列表顯示置頂文章的功能吧,這里針對dux主題為例,

因為在4.0版本之前dux主題置頂文章是不會顯示在首頁文章列表的,表示功能是失效的,這里分享一個添加或者是修改的代碼教程。

dux置頂文章不顯示

貌似使用dux4.0之前的主題,不管文章如何設置置頂,都是不會顯示在文章列表的第一位的,不管是首頁還是分類頁。

教程如下:

1、在DUX主題設置添加按鈕

方法很簡單,我們只需要把下面代碼添加到你的DUX主題的“options.php”文件當中。添加完成后,以后我們可以到DUX主題設置頁面來控制是否顯示頂置文章及顯示多少篇文章。

$options[] = array(
'name' => __('顯示置頂文章', 'haoui'),
'type' => 'heading' );

$multicheck_nums = array(
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5'
);
$options[] = array(
'name' => __('首頁最新發布顯示置頂文章', 'haoui').' (v4.0+)',
'id' => 'home_sticky_s',
'type' => "checkbox",
'std' => false,
'desc' => __('開啟', 'haoui'));

$options[] = array(
'id' => 'home_sticky_n',
'options' => $multicheck_nums,
'desc' => __('置頂文章顯示數目', 'haoui'),
'type' => 'select');

如下圖所示:

2、修改主任index.php文件。

第二步是修改DUX主題的index.php文件。在DUX主題4.0版本之前,首頁有不顯示“某分類”或“某ID”下文章的功能,具體代碼如下:

<?php 
$args = array(
'ignore_sticky_posts' => 1,
'paged' => $paged
);

if( _hui('notinhome') ){
$pool = array();
foreach (_hui('notinhome') as $key => $value) {
if( $value ) $pool[] = $key;
}
$args['cat'] = '-'.implode($pool, ',-');
}

if( _hui('notinhome_post') ){
$pool = _hui('notinhome_post');
$args['post__not_in'] = explode("\n", $pool);
}
query_posts($args);
?>
<?php get_template_part( 'excerpt' ); ?>

而DUX主題4.0之后的版本,新增了首頁是否顯示頂置文章的功能,所以我們只需將下面代碼替換上面的代碼即可。

<?php 
$pagenums = get_option( 'posts_per_page', 10 );
$offsetnums = 0;
$stickyout = 0;
if( _hui('home_sticky_s') && in_array(_hui('home_sticky_n'), array('1','2','3','4','5')) && $pagenums>_hui('home_sticky_n') ){
if( $paged <= 1 ){
$pagenums -= _hui('home_sticky_n');
$sticky_ids = get_option('sticky_posts'); rsort( $sticky_ids );
$args = array(
'post__in' => $sticky_ids,
'showposts' => _hui('home_sticky_n'),
'cat' => 483,//可以在這里填寫顯示的分類ID,就能達到只顯示頂置的指定分類的效果。如果不需要請刪除此段代碼。
'ignore_sticky_posts' => 1
);
query_posts($args);
get_template_part( 'excerpt' );
}else{
$offsetnums = _hui('home_sticky_n');
}
$stickyout = get_option('sticky_posts');
}


$args = array(
'post__not_in' => array(),
'ignore_sticky_posts' => 1,
'showposts' => $pagenums,
'paged' => $paged
);
if( $offsetnums ){
$args['offset'] = $pagenums*($paged-1) - $offsetnums;
}
if( _hui('notinhome') ){
$pool = array();
foreach (_hui('notinhome') as $key => $value) {
if( $value ) $pool[] = $key;
}
if( $pool ) $args['cat'] = '-'.implode($pool, ',-');
}
if( _hui('notinhome_post') ){
$pool = _hui('notinhome_post');
$args['post__not_in'] = explode("\n", $pool);
}
if( $stickyout ){
$args['post__not_in'] = array_merge($stickyout, $args['post__not_in']);
}
query_posts($args);
get_template_part( 'excerpt' ); 
?>

3、修改主題excerpt.php文件。

這一步很簡單,是通過修改主題excerpt.php文件為頂置文章標題后面添加一個“頂置”的標識。只需把下面代碼放到excerpt.php文件的echo ‘</header>’; 代碼之上就OK了。

if( _hui('home_sticky_s') && is_sticky() ){
echo '<span class="zd">置頂</span>';
}

4、添加CSS樣式。

這是最后一步,是為你上面設置的“頂置”標識添加一個樣式,顯得更美觀一點。只需在主題的“main.css”文件當中添加下面代碼即可。

.excerpt {
position: relative;
}
.excerpt .zd {
position: absolute;
right: -38px;
top: -16px;
display: block;
width: 76px;
height: 20px;
line-height: 20px;
background: #ff5e52;
color: #fff;
font-size: 14px;
font-weight: 400;
text-align: center;
transform: rotate(45deg);
transform-origin: 0% 0%;
}

到此教程結束,記得保存源文件必備修改出錯導致網站無法打開。

歷史上的今天:
贊(14) 打賞
所有免費資源、福利、電影、破解軟件未經允許不得轉載:www.btilnp.live無作為 » DUX主題添加/修復首頁列表不顯示置頂文章功能

留下評論 1

  1. #1

    老無,你的dux是不是已經被你改的不成樣子了

    拽英文2年前 (2018-07-19)回復

無作為-不僅僅是一種態度

登錄/注冊廣告合作

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞

广西风采快三