0

我在我的 WordPress 主题的 home.php 文件中创建了这个脚本,以计算div与数字(1.408)相关的宽度值。此操作为我提供了结果(内部$chars变量)来确定要在响应式设计的摘录中使用的字符数。如果div更大或更薄,我的 WordPress 摘录会有不同数量的字符。

这是我在 HOME.PHP 上发布的代码。Javascript 后跟 PHP 代码摘录。我知道如果没有 Ajax(在其他论坛上阅读),PHP 中的 javascript 变量是不可能的,但我不明白到底该怎么做。我不太擅长代码。请清楚,如果可能的话,请举一些例子!

<script type='text/javascript'>
jQuery(document).ready(function() {
var $myDiv = jQuery('#last_post_img_text');
var $results = jQuery('#results');
var $chars = jQuery( $myDiv.outerWidth()/1.408 );
</script>       

<?php new_excerpt( $chars ); ?>
4

2 回答 2

0

使用 Ajax 重新加载评论似乎是一个糟糕的决定。您为什么要继续重新加载并没有真正改变的内容。我认为你最好的选择是使用 jQuery 插件。

似乎可以满足您的要求的是http://www.bramstein.com/projects/text-overflow/

或者,您可以查看 CSS3 属性“文本溢出”(http://www.w3schools.com/cssref/css3_pr_text-overflow.asp)。

于 2013-01-10T13:32:21.247 回答
0

我建议一种方法:加载页面,检查容器元素的宽度和高度,然后使用 $.ajax 加载元素内容,并发送某种变量来决定使用多少个字符。如果您想以 WordPress 方式进行操作,请阅读:

add_action('wp_ajax_$handlename', 'function_to_run');
add_action('wp_ajax_nopriv_$handlename', 'function_to_run');

这将响应您的 ajax 请求。

wp_enqueue_script( 'theme_js', get_bloginfo('template_url') . '/js/jquery-theme.js', array('jquery'), THEME_VERSION, false );
$protocol = isset( $_SERVER["HTTPS"] ) ? 'https://' : 'http://';
$params = array( 'ajaxurl' => admin_url( 'admin-ajax.php', $protocol )  );
wp_localize_script( 'theme_js', 'theme_js', $params );  

如果您不知道如何将 wp-ajax.php 本地化发送到 jQuery $.ajax 请求,这可能会派上用场。

于 2013-01-10T14:07:02.423 回答