小编Zet*_*eth的帖子

在Wordpress中将图像设为私有

我正在制作一个网站,我想私下.最重要的部分是,如果没有用户首先登录,则无法看到域上的图像.因此,如果用户未登录,我希望将所有流量重定向到www.DOMAINNAME.com/wp-admin(也适用于图片).

这是我尝试过的:

1)插件.我已经尝试了Wordpress Force登录,插件wp-require-login即将推出的页面和维护模式.

2)从这个答案添加一个功能.这是:

function is_login_page() {
    return in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) );
}

function wpse_make_blog_private() {
    if ( ! is_user_logged_in() && ! is_admin() && ! is_login_page() ) { 
    global $wp_query;
    $wp_query->set_404();
    }
}
add_action( 'wp', 'wpse_make_blog_private' );
Run Code Online (Sandbox Code Playgroud)

如果我转到图片的直接网址(例如http://www.DOMAINNAME.com/uploads/2015/10/foobar.jpg),则这些内容不会重定向流量.

可以这样做吗?

-----------------编辑1 --------------

Mevius指出,如果您输入图像的直接URL,可能无法加载Wordpress,因此他建议,它应该在apache级别完成.

-------------编辑结束1 -----------

php wordpress .htaccess wordpress-plugin

19
推荐指数
2
解决办法
1642
查看次数

绕过Gmail的垃圾邮件过滤器(使用PHP从共享主机发送的邮件)

TL; DR:从共享主机发送的邮件(例如Unoeuro或One.com的廉价域名)最终会被垃圾邮件发送.怎么修?


我制作了一个邮件系统,它首先生成一个PDF文件(使用FPDF),然后将PDF文件作为附件发送给PHP的Swiftmailer.这封电子邮件已发送给130人(作为"一张发票").但是几乎每个人都陷入垃圾邮件过滤器.我尝试调整SwiftMailers标头设置,但没有任何运气.即使是我以前没有寄过的邮件(经过全面测试).这是我最初的设置:

function sendMailEt($toEmail, $toName, $invoiceNumber){

require_once('includes/lib/swift_required.php');

$transport = Swift_SmtpTransport::newInstance('mailout.one.com', 25)
  ->setUsername('EMAIL-ACCOUNT1@THE-DOMAIN.DK')
  ->setPassword('THE-PASSWORD')
  ;    

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance('FROM COMPANY')
      ->setSubject('Thanks for signing up - COMPANY')
  ->setFrom(array('EMAIL-ACCOUNT1@THE-DOMAIN.DK' => 'Company name'))
  ->setTo(array($toEmail => $toName))
      ->setBody('A brief body, that explains that this is an invoice and that it has to be paid within 5 days. (written in danish)')
      ->addPart('A brief body, that explains that this is an invoice and that it has to be paid within 5 …
Run Code Online (Sandbox Code Playgroud)

php email spam-prevention spam swiftmailer

16
推荐指数
2
解决办法
1万
查看次数

V-if inside v-for - 在两列中显示项目列表

我很抱歉发布此消息,因为我可以看到许多与此类似的问题已被问过多次。以下是那些几乎帮助我的人 - 以及为什么他们没有:

  • 是因为计算不应该在渲染中完成,而应该在方法/计算部分完成。那对我没有帮助。
  • 这个使用两个不同的模板,v-if在模板标签上写上。就我而言,这似乎很愚蠢,因为这两个模板 98% 相同。
  • 这篇Medium 文章解决了一个与我非常接近的问题。但是, - 在他的情况下,这是对用户的过滤(通过计算属性解决),而不是在特定迭代中插入代码片段的 if 子句(这就是我认为我正在寻找的)。

问题

我有一个从 API 中提取的项目列表,因此数量会发生变化。我希望它们显示在两列中:

-----------------
| Item1   Item5 |
| Item2   Item6 |
| Item3   Item7 |
| Item4         |
-----------------
Run Code Online (Sandbox Code Playgroud)

我正在使用循环遍历它们v-for

我的尝试

  1. 使用纯 CSS display: flex

但这只能做到这一点:

-----------------
| Item1   Item2 |
| Item3   Item4 |
| Item5   Item6 |
| Item7         |
-----------------
Run Code Online (Sandbox Code Playgroud)
  1. 使用 CSS 与 column-count: 2;

但是,列中间元素,问候display: block; overflow: hidden;和许多其他尝试的中断。应该说,这些元素的高度可以变化。

  1. 所以我放弃了使用 CSS …

css vue.js vuejs2

10
推荐指数
1
解决办法
9566
查看次数

基于布尔值启用/禁用 Vue 转换

在 Vue 中,我可以基于布尔值以某种方式禁用过渡动画吗?

现在动画已启用:

<transition name="fadeUp">
  <div v-if="elIsVisible">
    <p>Foo Bar</p>
  </div>
</transition>
Run Code Online (Sandbox Code Playgroud)

但我希望我做这样的事情:

<transition name="fadeUp" animation-enabled="false">
  <div v-if="elIsVisible">
    <p>Foo Bar</p>
  </div>
</transition>
Run Code Online (Sandbox Code Playgroud)

或者也许是一个聪明的解决方法?


这是一个基于模块的网站(每个块一个组件),如果用户可以启用/禁用某些块的动画,那就太好了。

javascript vue.js

8
推荐指数
1
解决办法
6489
查看次数

全屏视频背景 - <video> vs YouTube/Vimeo- <iframe>?

我正在创建一个具有全屏视频背景的网站,用于标题部分.我希望网站加载和运行尽可能快速和流畅,所以我不知道主页是否必须在运行之前加载50-100mb的视频(尽管它可能会传输视频) ,因为它加载 - 但我不知道这是如何工作的).

我在这个问题的第一部分是,我很少偶然发现视频背景卡住了.这是因为我很幸运,我使用的连接,或者是那些使视频背景变得聪明并且以某种方式将视频压缩到小文件大小的人?

这个问题的第二部分是,哪种方式最适合在我的客户网站上实现这个视频背景?是否使用HTML5 <video>标签?(在此链接中找到):

<video style="width: 1776px; height: 1009px; margin-left: -98px; 
margin-top: 0px;" id="videobcg" class="fill" width="1580" height="898"
preload="auto" autoplay="true" loop="loop" muted="muted" volume="0"
poster="url-to-poster-picture.jpg">
  <source src="sites/default/files/videos/basic_home.mp4" type="video/mp4">
  <source src="sites/default/files/videos/basic_home.webm" type="video/webm">
  Sorry, your browser does not support HTML5 video.
</video>
Run Code Online (Sandbox Code Playgroud)

...或者是否使用YouTube或Vimeo,将其插入<iframe>?我想真正的问题是,如果我的托管公司(One.com)为我提供比YouTube或Vimeo更多的带宽?或者,如果有推荐的方法可以做到这一点?

如果可以对SEO的目的做出更好的评论,那么也会受到赞赏.

html css youtube video html5

7
推荐指数
1
解决办法
5419
查看次数

更改终端(或 iTerm2)中可执行文件的颜色

如何更改它,使可执行文件与其他文件相比没有其他颜色?我使用的是 macOS Sierra (10.12.6)。在常规终端中是相同的:

终端可执行文件 - 颜色红色

...或在 iTerm2 中:

iTerm2 可执行文件 - 红色

看起来很令人沮丧。如果我写的话chmod -x [FILENAME]它就会消失。但我不想更改文件是否可执行, - 我想更改可执行文件的颜色。我希望我的文件看起来像这样(无论它是否可执行):

常用 iTerm2 颜色

terminal colors iterm ls-colors iterm2

7
推荐指数
1
解决办法
7668
查看次数

如何使用 Vue / JavaScript 在移动设备上触发长按(点击并按住)

这仅适用于移动设备。它在桌面上按预期工作,因此我将省略所有这些样式和功能。

我有一个像这样的 Vue 组件:

模板

<div class="container">

  <div class="invisible-overlay-styles">
    <button
      v-if="! videoIsPlaying"
      @click="playVideo()"
      @mousedown="playVideo()"
    >
    </button>

    <a
      v-if="videoIsPlaying"
    >
    </a>
  </div> <!-- invisible-overlay-styles -->

  <video ... /> 

</div>
Run Code Online (Sandbox Code Playgroud)

所有的 div、按钮、锚点和视频都堆叠在一起,使用display: blockposition: absolute; width: 100%; etc. etc. etc.

方法

  playVideo(){
    console.log( 'Im playing!!' );
    if( this.player ){
      if( this.player.paused ){
        this.player.play()
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果我点击它,它就会按预期工作:

  • 第一次单击时,将播放视频。
  • 第二次单击时,将单击该链接。

但如果我单击并按住,则 或@click都不会@mousedown被触发。这都在:

  • 我的三星 Android 设备上的 Chrome
  • 在 iPhone 7 上的 Safari 浏览器上
  • 在我的 Mac 上的 iOS 模拟器中。...我已经检查过,当我单击并按住(长按)时,没有出现 …

javascript vue.js

7
推荐指数
1
解决办法
9105
查看次数

CSS使用'&gt;'(大于)和'*'(星号)

我目前正在尝试使用Sequence.js,到目前为止,它确实很棒。不过,有一条线我很难解释。是这样的:

#sequence .seq-canvas > *  {...}
Run Code Online (Sandbox Code Playgroud)

我发现这>意味着给定类的所有直接后代。所以如果它说了

的CSS

#sequence .seq-canvas > li   {color: red}
Run Code Online (Sandbox Code Playgroud)

那么这意味着所有位于.seq-canvas -element下方的li都是。例:

的HTML

<div id="sequence">
<ul class="seq-canvas">
  <li>This is red</li>
  <li>This is also red</li>
  <li>
    <ul>
      <li>This is not red?</li>
      <li>Neither is this?</li>
    </ul>
 <li>But this is red</li>
</ul>
</div> <!-- sequence -->
Run Code Online (Sandbox Code Playgroud)

... 对?

显然*意味着所有要素。但是如果>和*组合在一起,那么会使我感到困惑。所以这是一个例子:

的CSS

#sequence .seq-canvas > *  {color: blue;}
Run Code Online (Sandbox Code Playgroud)

的HTML

<div id="sequence">
<ul class="seq-canvas">
  <li>This must be blue</li>
  <li>So is this</li>
  <li>
    <ul>
      <li>But is this blue?</li>
    </ul> …
Run Code Online (Sandbox Code Playgroud)

css css-selectors

6
推荐指数
1
解决办法
3503
查看次数

Laravel错误-类setEventDispatcher不存在

简洁版本

运行php artisan serve并访问我的主页时,出现此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

细节

Laravel版本:5.6.39环境:本地操作系统:macOS Mojave 10.14.2

当我npm在另一个项目中使用时出现错误时,它开始了,所以我重新安装了Node (这种方式)

完成此操作后,该项目(正在讨论中)将无法启动。运行时出现此错误php artisan serve

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib with anything php related
Referenced from: /usr/local/bin/php
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

通过更新和升级brew解决了该错误。

然后,我能够启动项目(php artisan serve)。但是当我访问主页时,显示此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

如果我遵循堆栈跟踪,那么我可以看到正是此行(来自my homeController)触发了错误:

if( ! Auth::check() ){
  return view( 'pages.home' );
}
Run Code Online (Sandbox Code Playgroud)

如果我将其注释掉,则从另一个Auth使用-module的地方也会发生相同的错误。

这是堆栈跟踪:

setEventDispatcher不存在错误

有谁知道如何解决这个问题?我在Google上找不到任何有希望的结果,-我也不知道为什么会这样...:-/

加法1

我尝试composer clear-cache删除供应商文件夹,然后再执行a …

laravel

6
推荐指数
1
解决办法
1652
查看次数

在AJAX调用之后将'table'类应用于WooCommerce表

WooCommerce桌带有这样的班,开箱即用:shop_table shop_table_responsive cart woocommerce-cart-form__contents。所以没有table-class,这意味着没有漂亮的Bootstrap表。

并且由于仅在绝对必要时才应覆盖WooCommerce模板,因此让我们使用JavaScript来解决它!

我的整个网站都由Vue-div封装,如下所示:

<div id="app">
  ...
  <table class="shop_table shop_table_responsive cart woocommerce-cart-form__contents">
    ...
    ...
  </table>
  ... 
</div>
Run Code Online (Sandbox Code Playgroud)

因此,最初,我编写了以下代码,将table-class 添加到所有表中:

let tableSelectors = [
  '.some-class table',
  '.woocommerce-product-attributes',
  '.woocommerce-cart-form > table'
];
for( let t = 0; t < tableSelectors.length; t++ ){
  let tables = document.querySelectorAll( tableSelectors[t] );
  if( tables ){
    for( let i = 0; i < tables.length; i++ ){
      tables[i].classList.add( 'table' );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

...将其放在- mounted(){ ... }节中。

可行!到目前为止,一切都很好。 …

javascript jquery woocommerce

6
推荐指数
1
解决办法
176
查看次数