仅为移动设备显示the_content()的前X个单词

时间:2014-03-26 13:46:00

标签: php wordpress mobile

我如何只展示the_content()的前X个单词,但仅针对移动设备?

4 个答案:

答案 0 :(得分:1)

您可以在主题文件夹中添加functions.php文件并执行以下操作

add_filter("the_content", "plugin_myContentFilter");

function plugin_myContentFilter($content)
{
    if (wp_is_mobile())
        return substr($content, 0, 100); // Show the first 100 characters of content if the user is visiting using a mobile device
    else 
        return $content;
}

请注意,我没有对此进行过测试,但理论上我认为它应该可行。

来源:

答案 1 :(得分:0)

你可以使用它;

<?php
function getFirstXWord($string, $a) {
    $temp = explode(" ", $string);
    return implode(" ", array_slice($temp, 0, $a, true));   
}

echo getFirstXWord("this is a content but do not trust this content", 5);
?>

以下是一个有效的演示: codepad

对于移动检测部分,您可以使用php-mobile-detect课程。项目中有一些例子,我没有在这里说明

答案 2 :(得分:0)

立刻想到两种方式。

一种方法是使用PHP检查客户端的用户代理,然后使用the_excerpt()获取帖子的摘录。您可以使用以下代码修改您获取的摘录的长度。

add_filter('excerpt_length', function() {
    return 20;  
}, 999);

有关the_excerpt() click here的更多信息;有关add_filterclick here的更多信息。

或者,您可以使用CSS和媒体查询(更多信息here)来处理移动设备。基本上你需要两个容纳帖子内容的容器:

<div class="post desktop">
    Your post content here!
</div>

<div class="post mobile">
    Your mobile excerpt...
</div>

在你的CSS中:

.mobile {
    display: none;
}

@media (max-width: < target device width goes here >) {
    .desktop {
        display: none;
    }

    .mobile {
        display: block;
    }
}

答案 3 :(得分:0)

content.php中,您可以更改以下内容:

<?php if ( is_search()) : ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->

<?php if ( is_search() || wp_is_mobile()) : ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->

您可以将摘录长度设置为您想要的长度