在单击图像时执行快捷码

时间:2014-04-02 作者:xyz

我在javascript下的stackovorflow中问过这个问题,但被告知不可能,所以我在这里尝试

我有一个选择加入表单的快捷码,我希望它在单击图像时弹出

我在两个Header Scripts 还有我的functions.php 文件

<img src="someimage.png" onclick="executeShortCode()" /> 

<script> 
function executeShortCode() {
<?php echo do_shortcode(\'[yourshortcode]\'); ?>
}
</script>

2 个回复
最合适的回答,由SO网友:Andrew Bartel 整理而成

这当然是可能的,但您可能正在考虑对图像单击执行ajax请求,然后执行短代码并返回输出。这涉及三个不同的步骤,将ajax请求绑定到一个操作,执行ajax请求并处理响应,以及实际编写将处理请求的脚本。此答案不会覆盖所有必要的开销,您需要正确本地化脚本以生成要发布到的正确url,您需要添加检查以确保请求合法,this should not just be copy/pasted.

Handling the click (js)

jQuery(document).ready(function($) {
    $(\'#my_image_id\').on(\'click\',function() {
        // you need to, at a minimum, include a nonce here as well
        var data = {
            action: \'process_shortcode_on_image_click\'
        }
        // change \'/wp-admin/admin-ajax.php to the correct variable generated by wp_localize_script()
        $.post(\'/wp-admin/admin-ajax.php\',data).done(function(response) {
            // do whatever you want with response, it will contain the shortcode output
            // maybe something like $(\'#my_popup_id\').html(response);
        });
    })
})

Hooking the request onto actions

这可以在函数中进行。php或插件,它们将在每次页面加载时执行。

// these call the appropriate function based on the action passed from the data object in the js
add_action( \'wp_ajax_process_shortcode_on_image_click_action\', \'process_shortcode_on_image_click_ajax\');
add_action( \'wp_ajax_nopriv_process_shortcode_on_image_click_action\', \'process_shortcode_on_image_click_ajax\');

Handling the ajax request

这可以在函数中进行。php或插件,它们将在每次页面加载时执行。

function process_shortcode_on_image_click_ajax() {
    // you should check for a nonce and do other validation here to make sure this is a legit request
    echo do_shortcode(\'[yourshortcode]\');
    die();
}
有关更多信息,请参阅Handling Ajax in Plugins 从Codex和docs开始wp_localize_script

SO网友:geek_girl

我也有同样的问题。不知怎的,我通过使用以下插件解决了这个问题

https://wordpress.org/plugins/anything-popup/

您可以提供弹出标题/链接/图像,并在内容中显示表单的快捷码。并调用文本/链接/图像所在的弹出式快捷码。单击其中任何一个,将显示包含所需内容的弹出窗口。

结束

相关推荐

找不到WordPress主题的404.php,服务器默认为阿帕奇自己的404页面

如果我只是在我的Wordpress安装中键入一些引起404错误的内容,Wordpress不会加载自己的404。php文件,但会显示Apache服务器自己的404错误消息。我的Wordpress安装有什么问题?我是否需要编辑Apache服务器的配置文件并重定向到Wordpress 404。php页面更新:我已经部分成功地完成了这项工作,我错过了FileInfo 中的指令/etc/apache2/sites-available/default 文件不过,并不是所有的东西都能被优雅地捕捉到。