【问题标题】:How do I use javascript / jquery image resize with wordpress?如何使用 javascript / jquery 使用 wordpress 调整图像大小?
【发布时间】:2013-10-06 17:24:33
【问题描述】:

我不想在我的 wordpress 主题中包含这个脚本,让它根据当前窗口高度调整帖子中所有图像的大小:

https://github.com/gutierrezalex/photo-resize

我在我的文本编辑器中制作了一个基本的测试页面,它可以很好地调整图像的大小。但是,当我尝试在我的 wordpress 主题中应用/包含它时,我根本无法让它工作。

请,任何帮助将不胜感激!

这是我的头部标签之间的内容:

<head><!-- HEAD BEGINS -->

<meta charset="<?php bloginfo( 'charset' ); ?>" />
<title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>
<meta name="description" content="<?php bloginfo( 'description' ); ?>">

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="jquery-photo-resize.js"></script>
<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
        $("img").photoResize({
        bottomSpacing: 15
        });
    });
</script>

<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" media="screen" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); ?>
<link rel="shortcut icon" href="<?php echo get_stylesheet_directory_uri(); ?>/favicon.ico" />

<link href='http://fonts.googleapis.com/css?family=Raleway:700,400,500,300' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,400italic' rel='stylesheet' type='text/css'>

<?php wp_head(); ?>

</head><!-- HEAD ENDS -->

这是位于同一文件夹中的脚本(文件名:jquery-photo-resize.js):

/// <reference path="jquery-1.5.1.min.js" />

/*
* Adjust photo on browser window resize
* 
* @example: $('selector').photoResize();
* 
* @example:
$('selector').photoResize({
    bottomSpacing:"Bottom Spacing adjustment"
});
*/

(function ($) {

$.fn.photoResize = function (options) {

    var element = $(this), 
        defaults = {
            bottomSpacing: 10
        };

    $(element).load(function () {
        updatePhotoHeight();

        $(window).bind('resize', function () {
            updatePhotoHeight();
        });
    });

    options = $.extend(defaults, options);

    function updatePhotoHeight() {
        var o = options, 
            photoHeight = $(window).height();

        $(element).attr('height', photoHeight - o.bottomSpacing);
    }
};

}(jQuery));

我当前的functions.php:

<?php
add_theme_support( 'post-thumbnails' );

add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );

function my_post_image_html( $html, $post_id, $post_image_id ) {

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;
}

function register_my_menu() {
register_nav_menu('top-menu',__( 'Top Menu' ));
}
add_action( 'init', 'register_my_menu' );

function righter_filter_ptags($content) {
$content = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
$content = preg_replace('/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content);
$content = preg_replace('/<p>\s*(<samp .*>*.<\/samp>)\s*<\/p>/iU', '\1', $content);
return $content;
}

add_filter('the_content', 'righter_filter_ptags');

【问题讨论】:

  • 发布您迄今为止尝试过的内容非常重要,这样我们就可以找出您可能做错了什么或错过了什么。没有它,它只是异端。能发一下代码吗?
  • 你是如何包含 js 文件的?一些代码plzz
  • @zillaofthegods 抱歉,我刚刚编辑了帖子并添加了代码!
  • @Vaibs_Cool 抱歉,刚刚用代码更新了帖子!
  • 感谢您发布它,这应该会有所帮助。

标签: javascript jquery image wordpress resize


【解决方案1】:

首先,好的。适用于所有 wordpress 脚本。查询非常重要。因此,请获取您的链接并执行以下操作:

避免资产冲突的最佳方法是正确地对文件进行排队。为此,您必须使用wp_enqueue_script

这样做的一个好方法是将它作为函数的一部分放在你的functions.php文件中

  1. 创建函数
  2. 在函数中插入wp_register_script
  3. 然后在函数中插入wp_enqeue_script
  4. 使用 add_action() 来初始化入队过程

所以-

function load_scripts() {
  wp_register_script( 'script-name', get_template_directory_uri() . '/js/script.js', array( 'scriptyouwillwaittobeloaded' ) );
  wp_enqueue_script( 'script-name' );
}

add_action('wp_enqueue_scripts', 'load_scripts');

在本例中,函数 load_scripts() 将在 header.php 文件中被调用。看看 wp_register_script 也可以更好地理解它的论点,但总结一下 -

第一个参数:是您要用作此脚本引用的名称

第二个参数:是脚本的实际链接

第三个参数:是你想在这个脚本之前加载的脚本(你想在这个脚本加载之前等待的脚本)


对于 wp_enqueue_script,参数只是对名称的引用(wp_register_script 的第一个参数)


add_action 函数参数:

第一个参数:你“挂钩”到的函数

第二个参数:你创建的将被“钩住”的函数


其次 - &lt;script src="http://code.jquery.com/jquery-latest.js"&gt;&lt;/script&gt; 实际上是 jquery 远程文件的名称吗?尝试加载您自己的本地化版本。另外,确保没有其他东西正在加载 jquery(比如样板,你有什么)。


总之 - 由于 wordpress 的工作方式,您的代码没有加载。您的调整大小脚本正在根文件夹中查找,而不是在 wordpress 主题文件夹中,因此无法找到它。一个快速的解决办法是这样做&lt;script src=&lt;?php echo "'" . get_template_directory_uri() . "/jquery-photo-resize.js'" ?&gt;&gt;&lt;/script&gt; 但是你应该认真考虑入队。

【讨论】:

  • 非常感谢!!!但是我有点迷路了......脚本代码和头代码来自作者。但是,脚本名称是 jquery-photo-resize.js,本地存储在主题文件夹中。我假设 code.jquery.com/jquery-latest.js 是 JS 框架,必须提前加载才能使脚本正常工作。但我对与 javascript(s) 相关的任何事情/所有事情都很陌生,所以我知道什么。我刚刚用我当前的函数文件更新了帖子。我不知道我需要做什么才能让它工作。非常感谢您的帮助!!!
  • 看看我在底部添加的内容,应该会有所帮助。
  • 谢谢!!!在我弄清楚如何以正确的方式进行操作之前,必须进行快速修复...但是有一个问题,当我在文本编辑器中制作基本测试页面/图像时,该问题不存在。在 wordpress 中使用时,调整大小不成比例——知道是什么原因造成的吗? niklaslundberg.com/turkisk-peber
  • 嘿,没问题。不要忘记投票并检查它是否有效(我爱我的甜蜜代表)。嗯,这取决于您输出图像的方式,它可能会受到一些核心 css 文件和 wordpress 样式的影响(如果您正在动态输出图像)。如果没有使用插件或访问代码也很难说。建议单独为此打开另一个主题。
猜你喜欢
  • 2018-03-28
  • 1970-01-01
  • 2021-05-18
  • 2021-06-25
  • 2015-01-23
  • 2016-07-13
  • 2011-08-17
  • 2011-03-16
  • 2014-08-17
相关资源
最近更新 更多