0

我正在使用这个 Wordpress 插件

https://smashballoon.com/custom-twitter-feeds/demo

我想将推文修剪为 120 个字符。

我没有 JS 技能,也很少 php - 我尝试了这个,但我不知道它是否相关。

$twitter_feed = (strlen($twitter_feed) > 120) ? substr($twitter_feed,0,10).'...' : $twitter_feed;
enter code here

我还尝试编辑我的工作代码以修剪我的帖子标题以适应哪些不起作用。

    function custom_trim_my_tweet( $twitter_feed ) {
        global $uncode_vc_index; 
        if ( is_singular() && !$uncode_vc_index )
            return $twitter_feed;

$twitter_feed = wp_trim_words( $twitter_feed, 9 );
    return $twitter_feed; 
}
add_filter( 'ctf-tweet-text', 'custom_trim_my_tweet' );
4

1 回答 1

0

使用 JavaScript 修剪文本:

首先,您必须使用 css 选择器选择元素。如果您可以使用元素 id 选择元素,这是最简单的,如下所示:

var tweet = document.getElementById("my_tweet_id");

然后您可以使用获取元素的文本内容element.innerText

var tweetText = tweet.innerText;

然后您可以使用简单地剪切元素内文本的长度string.substring()

tweet.innerText = tweetText.substring(0, 120);

老实说,我认为您应该尝试在插件/wordpress/php 级别解决此问题,而不是在 JavaScript 中剪切文本。但如果这就是你想要做的,那么上面的方法就可以了。

编辑: 如果推文元素没有唯一的 ID,您将必须选择所有这些元素,然后遍历每个元素并执行文本剪切。我会给你一个例子来说明如何做到这一点:

根据推文的显示方式,您可能需要对 CSS 选择器有点创意。

在我的示例中,我将假设您有一个ID,div该 ID'tweets'包含五个单独div的元素,每条推文一个,它们都具有相同的'single-tweet'.

首先我们得到所有'single-tweet'元素:

var tweets = document.querySelectorAll('#tweets .single-tweet');

tweets现在包含五个'single-tweet'div 的节点列表。

然后我们遍历它们.forEach()并对每个元素进行文本剪切。

tweets.forEach( (tweet) => {
    tweet.innerText = tweet.innerText.substring(0, 120);
})

现在,所有'single-tweet'元素都将包含您将文本减少到 120 个字符后剩下的内容。

于 2019-03-20T03:54:34.760 回答